1 // Copyright (c) 2015-2020 The Khronos Group Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 // ---- Exceptions to the Apache 2.0 License: ----
16 //
17 // As an exception, if you use this Software to generate code and portions of
18 // this Software are embedded into the generated code as a result, you may
19 // redistribute such product without providing attribution as would otherwise
20 // be required by Sections 4(a), 4(b) and 4(d) of the License.
21 //
22 // In addition, if you combine or link code generated by this Software with
23 // software that is licensed under the GPLv2 or the LGPL v2.0 or 2.1
24 // ("`Combined Software`") and if a court of competent jurisdiction determines
25 // that the patent provision (Section 3), the indemnity provision (Section 9)
26 // or other Section of the License conflicts with the conditions of the
27 // applicable GPL or LGPL license, you may retroactively and prospectively
28 // choose to deem waived or otherwise exclude such Section(s) of the License,
29 // but only in their entirety and only with respect to the Combined Software.
30 //
31 
32 // This header is generated from the Khronos Vulkan XML API Registry.
33 
34 #ifndef VULKAN_HPP
35 #define VULKAN_HPP
36 
37 #include <algorithm>
38 #include <array>
39 #include <cstddef>
40 #include <cstdint>
41 #include <cstring>
42 #include <functional>
43 #include <initializer_list>
44 #include <string>
45 #include <system_error>
46 #include <tuple>
47 #include <type_traits>
48 #include <vulkan/vulkan.h>
49 
50 #if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
51 # if !defined(VULKAN_HPP_NO_SMART_HANDLE)
52 #  define VULKAN_HPP_NO_SMART_HANDLE
53 # endif
54 #else
55 # include <memory>
56 # include <vector>
57 #endif
58 
59 #if !defined(VULKAN_HPP_ASSERT)
60 # include <cassert>
61 # define VULKAN_HPP_ASSERT   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 #  endif
72 
73 #  if defined(_WIN32)
74 #   include <windows.h>
75 #  endif
76 #endif
77 
78 #if 201711 <= __cpp_impl_three_way_comparison
79 # define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
80 #endif
81 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82 # include <compare>
83 #endif
84 
85 
86 static_assert( VK_HEADER_VERSION ==  140 , "Wrong VK_HEADER_VERSION!" );
87 
88 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
89 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
90 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
91 # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
92 #  define VULKAN_HPP_TYPESAFE_CONVERSION
93 # endif
94 #endif
95 
96 // <tuple> includes <sys/sysmacros.h> through some other header
97 // this results in major(x) being resolved to gnu_dev_major(x)
98 // which is an expression in a constructor initializer list.
99 #if defined(major)
100   #undef major
101 #endif
102 #if defined(minor)
103   #undef minor
104 #endif
105 
106 // Windows defines MemoryBarrier which is deprecated and collides
107 // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
108 #if defined(MemoryBarrier)
109   #undef MemoryBarrier
110 #endif
111 
112 #if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
113 # if defined(__clang__)
114 #  if __has_feature(cxx_unrestricted_unions)
115 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
116 #  endif
117 # elif defined(__GNUC__)
118 #  define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
119 #  if 40600 <= GCC_VERSION
120 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
121 #  endif
122 # elif defined(_MSC_VER)
123 #  if 1900 <= _MSC_VER
124 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
125 #  endif
126 # endif
127 #endif
128 
129 #if !defined(VULKAN_HPP_INLINE)
130 # if defined(__clang__)
131 #  if __has_attribute(always_inline)
132 #   define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
133 #  else
134 #   define VULKAN_HPP_INLINE inline
135 #  endif
136 # elif defined(__GNUC__)
137 #  define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
138 # elif defined(_MSC_VER)
139 #  define VULKAN_HPP_INLINE inline
140 # else
141 #  define VULKAN_HPP_INLINE inline
142 # endif
143 #endif
144 
145 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
146 # define VULKAN_HPP_TYPESAFE_EXPLICIT
147 #else
148 # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
149 #endif
150 
151 #if defined(__cpp_constexpr)
152 # define VULKAN_HPP_CONSTEXPR constexpr
153 # if __cpp_constexpr >= 201304
154 #  define VULKAN_HPP_CONSTEXPR_14  constexpr
155 # else
156 #  define VULKAN_HPP_CONSTEXPR_14
157 # endif
158 # define VULKAN_HPP_CONST_OR_CONSTEXPR  constexpr
159 #else
160 # define VULKAN_HPP_CONSTEXPR
161 # define VULKAN_HPP_CONSTEXPR_14
162 # define VULKAN_HPP_CONST_OR_CONSTEXPR  const
163 #endif
164 
165 #if !defined(VULKAN_HPP_NOEXCEPT)
166 # if defined(_MSC_VER) && (_MSC_VER <= 1800)
167 #  define VULKAN_HPP_NOEXCEPT
168 # else
169 #  define VULKAN_HPP_NOEXCEPT noexcept
170 #  define VULKAN_HPP_HAS_NOEXCEPT 1
171 # endif
172 #endif
173 
174 #if __cplusplus >= 201402L
175 #  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
176 #else
177 #  define VULKAN_HPP_DEPRECATED( msg )
178 #endif
179 
180 #if !defined(VULKAN_HPP_NAMESPACE)
181 #define VULKAN_HPP_NAMESPACE vk
182 #endif
183 
184 #define VULKAN_HPP_STRINGIFY2(text) #text
185 #define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
186 #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
187 
188 namespace VULKAN_HPP_NAMESPACE
189 {
190 
191 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
192   template <typename T>
193   class ArrayProxy
194   {
195   public:
ArrayProxy()196     VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
197       : m_count(0)
198       , m_ptr(nullptr)
199     {}
200 
ArrayProxy(std::nullptr_t)201     VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t) VULKAN_HPP_NOEXCEPT
202       : m_count(0)
203       , m_ptr(nullptr)
204     {}
205 
ArrayProxy(T & value)206     ArrayProxy(T & value) VULKAN_HPP_NOEXCEPT
207       : m_count(1)
208       , m_ptr(&value)
209     {}
210 
211     template<typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(typename std::remove_const<T>::type & value)212     ArrayProxy(typename std::remove_const<T>::type & value) VULKAN_HPP_NOEXCEPT
213       : m_count(1)
214       , m_ptr(&value)
215     {}
216 
ArrayProxy(uint32_t count,T * ptr)217     ArrayProxy(uint32_t count, T * ptr) VULKAN_HPP_NOEXCEPT
218       : m_count(count)
219       , m_ptr(ptr)
220     {}
221 
222     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)223     ArrayProxy(uint32_t count, typename std::remove_const<T>::type * ptr) VULKAN_HPP_NOEXCEPT
224       : m_count(count)
225       , m_ptr(ptr)
226     {}
227 
ArrayProxy(std::initializer_list<T> const & list)228     ArrayProxy(std::initializer_list<T> const& list) VULKAN_HPP_NOEXCEPT
229       : m_count(static_cast<uint32_t>(list.size()))
230       , m_ptr(list.begin())
231     {}
232 
233     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)234     ArrayProxy(std::initializer_list<typename std::remove_const<T>::type> const& list) VULKAN_HPP_NOEXCEPT
235       : m_count(static_cast<uint32_t>(list.size()))
236       , m_ptr(list.begin())
237     {}
238 
ArrayProxy(std::initializer_list<T> & list)239     ArrayProxy(std::initializer_list<T> & list) VULKAN_HPP_NOEXCEPT
240       : m_count(static_cast<uint32_t>(list.size()))
241       , m_ptr(list.begin())
242     {}
243 
244     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)245     ArrayProxy(std::initializer_list<typename std::remove_const<T>::type> & list) VULKAN_HPP_NOEXCEPT
246       : m_count(static_cast<uint32_t>(list.size()))
247       , m_ptr(list.begin())
248     {}
249 
250     template <typename Container>
ArrayProxy(Container const & container)251     ArrayProxy(Container const& container) VULKAN_HPP_NOEXCEPT
252       : m_count(static_cast<uint32_t>(container.size()))
253       , m_ptr(container.data())
254     {}
255 
256     template <typename Container>
ArrayProxy(Container & container)257     ArrayProxy(Container & container) VULKAN_HPP_NOEXCEPT
258       : m_count(static_cast<uint32_t>(container.size()))
259       , m_ptr(container.data())
260     {}
261 
begin() const262     const T * begin() const VULKAN_HPP_NOEXCEPT
263     {
264       return m_ptr;
265     }
266 
end() const267     const T * end() const VULKAN_HPP_NOEXCEPT
268     {
269       return m_ptr + m_count;
270     }
271 
front() const272     const T & front() const VULKAN_HPP_NOEXCEPT
273     {
274       VULKAN_HPP_ASSERT(m_count && m_ptr);
275       return *m_ptr;
276     }
277 
back() const278     const T & back() const VULKAN_HPP_NOEXCEPT
279     {
280       VULKAN_HPP_ASSERT(m_count && m_ptr);
281       return *(m_ptr + m_count - 1);
282     }
283 
empty() const284     bool empty() const VULKAN_HPP_NOEXCEPT
285     {
286       return (m_count == 0);
287     }
288 
size() const289     uint32_t size() const VULKAN_HPP_NOEXCEPT
290     {
291       return m_count;
292     }
293 
data() const294     T * data() const VULKAN_HPP_NOEXCEPT
295     {
296       return m_ptr;
297     }
298 
299   private:
300     uint32_t  m_count;
301     T *       m_ptr;
302   };
303 #endif
304 
305   template <typename T, size_t N>
306   class ArrayWrapper1D : public std::array<T,N>
307   {
308   public:
ArrayWrapper1D()309     VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT
310       : std::array<T, N>()
311     {}
312 
ArrayWrapper1D(std::array<T,N> const & data)313     VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array<T,N> const& data) VULKAN_HPP_NOEXCEPT
314       : std::array<T, N>(data)
315     {}
316 
317 #if defined(_WIN32) && !defined(_WIN64)
operator [](int index) const318     VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT
319     {
320       return std::array<T, N>::operator[](index);
321     }
322 
operator [](int index)323     VULKAN_HPP_CONSTEXPR T & operator[](int index) VULKAN_HPP_NOEXCEPT
324     {
325       return std::array<T, N>::operator[](index);
326     }
327 #endif
328 
operator T const*() const329     operator T const* () const VULKAN_HPP_NOEXCEPT
330     {
331       return this->data();
332     }
333 
operator T*()334     operator T * () VULKAN_HPP_NOEXCEPT
335     {
336       return this->data();
337     }
338   };
339 
340   // specialization of relational operators between std::string and arrays of chars
341   template <size_t N>
operator <(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)342   bool operator<(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
343   {
344     return lhs < rhs.data();
345   }
346 
347   template <size_t N>
operator <=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)348   bool operator<=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
349   {
350     return lhs <= rhs.data();
351   }
352 
353   template <size_t N>
operator >(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)354   bool operator>(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
355   {
356     return lhs > rhs.data();
357   }
358 
359   template <size_t N>
operator >=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)360   bool operator>=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
361   {
362     return lhs >= rhs.data();
363   }
364 
365   template <size_t N>
operator ==(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)366   bool operator==(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
367   {
368     return lhs == rhs.data();
369   }
370 
371   template <size_t N>
operator !=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)372   bool operator!=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
373   {
374     return lhs != rhs.data();
375   }
376 
377   template <typename T, size_t N, size_t M>
378   class ArrayWrapper2D : public std::array<ArrayWrapper1D<T,M>,N>
379   {
380   public:
ArrayWrapper2D()381     VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT
382       : std::array<ArrayWrapper1D<T,M>, N>()
383     {}
384 
ArrayWrapper2D(std::array<std::array<T,M>,N> const & data)385     VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array<std::array<T,M>,N> const& data) VULKAN_HPP_NOEXCEPT
386       : std::array<ArrayWrapper1D<T,M>, N>(*reinterpret_cast<std::array<ArrayWrapper1D<T,M>,N> const*>(&data))
387     {}
388   };
389 
390   template <typename FlagBitsType> struct FlagTraits
391   {
392     enum { allFlags = 0 };
393   };
394 
395   template <typename BitType>
396   class Flags
397   {
398   public:
399     using MaskType = typename std::underlying_type<BitType>::type;
400 
401     // constructors
Flags()402     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT
403       : m_mask(0)
404     {}
405 
Flags(BitType bit)406     VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT
407       : m_mask(static_cast<MaskType>(bit))
408     {}
409 
Flags(Flags<BitType> const & rhs)410     VULKAN_HPP_CONSTEXPR Flags(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
411       : m_mask(rhs.m_mask)
412     {}
413 
Flags(MaskType flags)414     VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT
415       : m_mask(flags)
416     {}
417 
418     // relational operators
419 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
420     auto operator<=>(Flags<BitType> const&) const = default;
421 #else
operator <(Flags<BitType> const & rhs) const422     VULKAN_HPP_CONSTEXPR bool operator<(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
423     {
424       return m_mask < rhs.m_mask;
425     }
426 
operator <=(Flags<BitType> const & rhs) const427     VULKAN_HPP_CONSTEXPR bool operator<=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
428     {
429       return m_mask <= rhs.m_mask;
430     }
431 
operator >(Flags<BitType> const & rhs) const432     VULKAN_HPP_CONSTEXPR bool operator>(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
433     {
434       return m_mask > rhs.m_mask;
435     }
436 
operator >=(Flags<BitType> const & rhs) const437     VULKAN_HPP_CONSTEXPR bool operator>=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
438     {
439       return m_mask >= rhs.m_mask;
440     }
441 
operator ==(Flags<BitType> const & rhs) const442     VULKAN_HPP_CONSTEXPR bool operator==(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
443     {
444       return m_mask == rhs.m_mask;
445     }
446 
operator !=(Flags<BitType> const & rhs) const447     VULKAN_HPP_CONSTEXPR bool operator!=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
448     {
449       return m_mask != rhs.m_mask;
450     }
451 #endif
452 
453     // logical operator
operator !() const454     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
455     {
456       return !m_mask;
457     }
458 
459     // bitwise operators
operator &(Flags<BitType> const & rhs) const460     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
461     {
462       return Flags<BitType>(m_mask & rhs.m_mask);
463     }
464 
operator |(Flags<BitType> const & rhs) const465     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
466     {
467       return Flags<BitType>(m_mask | rhs.m_mask);
468     }
469 
operator ^(Flags<BitType> const & rhs) const470     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
471     {
472       return Flags<BitType>(m_mask ^ rhs.m_mask);
473     }
474 
operator ~() const475     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
476     {
477       return Flags<BitType>(m_mask ^ FlagTraits<BitType>::allFlags);
478     }
479 
480     // assignment operators
operator =(Flags<BitType> const & rhs)481     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
482     {
483       m_mask = rhs.m_mask;
484       return *this;
485     }
486 
operator |=(Flags<BitType> const & rhs)487     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
488     {
489       m_mask |= rhs.m_mask;
490       return *this;
491     }
492 
operator &=(Flags<BitType> const & rhs)493     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
494     {
495       m_mask &= rhs.m_mask;
496       return *this;
497     }
498 
operator ^=(Flags<BitType> const & rhs)499     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
500     {
501       m_mask ^= rhs.m_mask;
502       return *this;
503     }
504 
505     // cast operators
operator bool() const506     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
507     {
508       return !!m_mask;
509     }
510 
operator MaskType() const511     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
512     {
513         return m_mask;
514     }
515 
516   private:
517     MaskType  m_mask;
518   };
519 
520 #if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
521   // relational operators only needed for pre C++20
522   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)523   VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
524   {
525     return flags > bit;
526   }
527 
528   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)529   VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
530   {
531     return flags >= bit;
532   }
533 
534   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)535   VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
536   {
537     return flags < bit;
538   }
539 
540   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)541   VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
542   {
543     return flags <= bit;
544   }
545 
546   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)547   VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
548   {
549     return flags == bit;
550   }
551 
552   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)553   VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
554   {
555     return flags != bit;
556   }
557 #endif
558 
559   // bitwise operators
560   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)561   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
562   {
563     return flags & bit;
564   }
565 
566   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)567   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
568   {
569     return flags | bit;
570   }
571 
572   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)573   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
574   {
575     return flags ^ bit;
576   }
577 
578   template <typename RefType>
579   class Optional
580   {
581   public:
Optional(RefType & reference)582     Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; }
Optional(RefType * ptr)583     Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; }
Optional(std::nullptr_t)584     Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; }
585 
operator RefType*() const586     operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator ->() const587     RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator bool() const588     explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; }
589 
590   private:
591     RefType *m_ptr;
592   };
593 
594   template <typename X, typename Y> struct isStructureChainValid { enum { value = false }; };
595 
596   template <typename P, typename T>
597   struct TypeList
598   {
599     using list = P;
600     using last = T;
601   };
602 
603   template <typename List, typename X>
604   struct extendCheck
605   {
606     static const bool valid = isStructureChainValid<typename List::last, X>::value || extendCheck<typename List::list,X>::valid;
607   };
608 
609   template <typename T, typename X>
610   struct extendCheck<TypeList<void,T>,X>
611   {
612     static const bool valid = isStructureChainValid<T, X>::value;
613   };
614 
615   template <typename X>
616   struct extendCheck<void,X>
617   {
618     static const bool valid = true;
619   };
620 
621   template<typename Type, class...>
622   struct isPartOfStructureChain
623   {
624     static const bool valid = false;
625   };
626 
627   template<typename Type, typename Head, typename... Tail>
628   struct isPartOfStructureChain<Type, Head, Tail...>
629   {
630     static const bool valid = std::is_same<Type, Head>::value || isPartOfStructureChain<Type, Tail...>::valid;
631   };
632 
633   template <class Element>
634   class StructureChainElement
635   {
636   public:
operator Element&()637     explicit operator Element&() VULKAN_HPP_NOEXCEPT { return value; }
operator const Element&() const638     explicit operator const Element&() const VULKAN_HPP_NOEXCEPT { return value; }
639   private:
640     Element value;
641   };
642 
643   template<typename ...StructureElements>
644   class StructureChain : private StructureChainElement<StructureElements>...
645   {
646   public:
StructureChain()647     StructureChain() VULKAN_HPP_NOEXCEPT
648     {
649       link<void, StructureElements...>();
650     }
651 
StructureChain(StructureChain const & rhs)652     StructureChain(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT
653     {
654       linkAndCopy<void, StructureElements...>(rhs);
655     }
656 
StructureChain(StructureElements const &...elems)657     StructureChain(StructureElements const &... elems) VULKAN_HPP_NOEXCEPT
658     {
659       linkAndCopyElements<void, StructureElements...>(elems...);
660     }
661 
operator =(StructureChain const & rhs)662     StructureChain& operator=(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT
663     {
664       linkAndCopy<void, StructureElements...>(rhs);
665       return *this;
666     }
667 
get()668     template<typename ClassType> ClassType& get() VULKAN_HPP_NOEXCEPT { return static_cast<ClassType&>(*this);}
669 
get() const670     template<typename ClassType> const ClassType& get() const VULKAN_HPP_NOEXCEPT { return static_cast<const ClassType&>(*this);}
671 
672     template<typename ClassTypeA, typename ClassTypeB, typename ...ClassTypes>
get()673     std::tuple<ClassTypeA&, ClassTypeB&, ClassTypes&...> get()
674     {
675       return std::tie(get<ClassTypeA>(), get<ClassTypeB>(), get<ClassTypes>()...);
676     }
677 
678     template<typename ClassTypeA, typename ClassTypeB, typename ...ClassTypes>
get() const679     std::tuple<const ClassTypeA&, const ClassTypeB&, const ClassTypes&...> get() const
680     {
681       return std::tie(get<ClassTypeA>(), get<ClassTypeB>(), get<ClassTypes>()...);
682     }
683 
684     template<typename ClassType>
unlink()685     void unlink() VULKAN_HPP_NOEXCEPT
686     {
687       static_assert(isPartOfStructureChain<ClassType, StructureElements...>::valid, "Can't unlink Structure that's not part of this StructureChain!");
688       static_assert(!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<StructureElements...>>::type>::value, "It's not allowed to unlink the first element!");
689       VkBaseOutStructure * ptr = reinterpret_cast<VkBaseOutStructure*>(&get<ClassType>());
690       VULKAN_HPP_ASSERT(ptr != nullptr);
691       VkBaseOutStructure ** ppNext = &(reinterpret_cast<VkBaseOutStructure*>(this)->pNext);
692       VULKAN_HPP_ASSERT(*ppNext != nullptr);
693       while (*ppNext != ptr)
694       {
695         ppNext = &(*ppNext)->pNext;
696         VULKAN_HPP_ASSERT(*ppNext != nullptr);   // fires, if the ClassType member has already been unlinked !
697       }
698       VULKAN_HPP_ASSERT(*ppNext == ptr);
699       *ppNext = (*ppNext)->pNext;
700     }
701 
702     template <typename ClassType>
relink()703     void relink() VULKAN_HPP_NOEXCEPT
704     {
705       static_assert(isPartOfStructureChain<ClassType, StructureElements...>::valid, "Can't relink Structure that's not part of this StructureChain!");
706       static_assert(!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<StructureElements...>>::type>::value, "It's not allowed to have the first element unlinked!");
707       VkBaseOutStructure * ptr = reinterpret_cast<VkBaseOutStructure*>(&get<ClassType>());
708       VULKAN_HPP_ASSERT(ptr != nullptr);
709       VkBaseOutStructure ** ppNext = &(reinterpret_cast<VkBaseOutStructure*>(this)->pNext);
710       VULKAN_HPP_ASSERT(*ppNext != nullptr);
711 #if !defined(NDEBUG)
712       while (*ppNext)
713       {
714         VULKAN_HPP_ASSERT(*ppNext != ptr);   // fires, if the ClassType member has not been unlinked before
715         ppNext = &(*ppNext)->pNext;
716       }
717       ppNext = &(reinterpret_cast<VkBaseOutStructure*>(this)->pNext);
718 #endif
719       ptr->pNext = *ppNext;
720       *ppNext = ptr;
721     }
722 
723   private:
724     template<typename List, typename X>
link()725     void link() VULKAN_HPP_NOEXCEPT
726     {
727       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
728     }
729 
730     template<typename List, typename X, typename Y, typename ...Z>
link()731     void link() VULKAN_HPP_NOEXCEPT
732     {
733       static_assert(extendCheck<List,X>::valid, "The structure chain is not valid!");
734       X& x = static_cast<X&>(*this);
735       Y& y = static_cast<Y&>(*this);
736       x.pNext = &y;
737       link<TypeList<List, X>, Y, Z...>();
738     }
739 
740     template<typename List, typename X>
linkAndCopy(StructureChain const & rhs)741     void linkAndCopy(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT
742     {
743       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
744       static_cast<X&>(*this) = static_cast<X const &>(rhs);
745     }
746 
747     template<typename List, typename X, typename Y, typename ...Z>
linkAndCopy(StructureChain const & rhs)748     void linkAndCopy(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT
749     {
750       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
751       X& x = static_cast<X&>(*this);
752       Y& y = static_cast<Y&>(*this);
753       x = static_cast<X const &>(rhs);
754       x.pNext = &y;
755       linkAndCopy<TypeList<List, X>, Y, Z...>(rhs);
756     }
757 
758     template<typename List, typename X>
linkAndCopyElements(X const & xelem)759     void linkAndCopyElements(X const &xelem) VULKAN_HPP_NOEXCEPT
760     {
761       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
762       static_cast<X&>(*this) = xelem;
763     }
764 
765     template<typename List, typename X, typename Y, typename ...Z>
linkAndCopyElements(X const & xelem,Y const & yelem,Z const &...zelem)766     void linkAndCopyElements(X const &xelem, Y const &yelem, Z const &... zelem) VULKAN_HPP_NOEXCEPT
767     {
768       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
769       X& x = static_cast<X&>(*this);
770       Y& y = static_cast<Y&>(*this);
771       x = xelem;
772       x.pNext = &y;
773       linkAndCopyElements<TypeList<List, X>, Y, Z...>(yelem, zelem...);
774     }
775   };
776 
777 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
778   template <typename Type, typename Dispatch> class UniqueHandleTraits;
779 
780   template <typename Type, typename Dispatch>
781   class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter
782   {
783   private:
784     using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter;
785 
786   public:
787     using element_type = Type;
788 
UniqueHandle()789     UniqueHandle()
790       : Deleter()
791       , m_value()
792     {}
793 
UniqueHandle(Type const & value,Deleter const & deleter=Deleter ())794     explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
795       : Deleter( deleter)
796       , m_value( value )
797     {}
798 
799     UniqueHandle( UniqueHandle const& ) = delete;
800 
UniqueHandle(UniqueHandle && other)801     UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
802       : Deleter( std::move( static_cast<Deleter&>( other ) ) )
803       , m_value( other.release() )
804     {}
805 
~UniqueHandle()806     ~UniqueHandle() VULKAN_HPP_NOEXCEPT
807     {
808       if ( m_value ) this->destroy( m_value );
809     }
810 
811     UniqueHandle & operator=( UniqueHandle const& ) = delete;
812 
operator =(UniqueHandle && other)813     UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
814     {
815       reset( other.release() );
816       *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
817       return *this;
818     }
819 
operator bool() const820     explicit operator bool() const VULKAN_HPP_NOEXCEPT
821     {
822       return m_value.operator bool();
823     }
824 
operator ->() const825     Type const* operator->() const VULKAN_HPP_NOEXCEPT
826     {
827       return &m_value;
828     }
829 
operator ->()830     Type * operator->() VULKAN_HPP_NOEXCEPT
831     {
832       return &m_value;
833     }
834 
operator *() const835     Type const& operator*() const VULKAN_HPP_NOEXCEPT
836     {
837       return m_value;
838     }
839 
operator *()840     Type & operator*() VULKAN_HPP_NOEXCEPT
841     {
842       return m_value;
843     }
844 
get() const845     const Type & get() const VULKAN_HPP_NOEXCEPT
846     {
847       return m_value;
848     }
849 
get()850     Type & get() VULKAN_HPP_NOEXCEPT
851     {
852       return m_value;
853     }
854 
reset(Type const & value=Type ())855     void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT
856     {
857       if ( m_value != value )
858       {
859         if ( m_value ) this->destroy( m_value );
860         m_value = value;
861       }
862     }
863 
release()864     Type release() VULKAN_HPP_NOEXCEPT
865     {
866       Type value = m_value;
867       m_value = nullptr;
868       return value;
869     }
870 
swap(UniqueHandle<Type,Dispatch> & rhs)871     void swap( UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
872     {
873       std::swap(m_value, rhs.m_value);
874       std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
875     }
876 
877   private:
878     Type    m_value;
879   };
880 
881   template <typename UniqueType>
uniqueToRaw(std::vector<UniqueType> const & handles)882   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw(std::vector<UniqueType> const& handles)
883   {
884     std::vector<typename UniqueType::element_type> newBuffer(handles.size());
885     std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); });
886     return newBuffer;
887   }
888 
889   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)890   VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
891   {
892     lhs.swap( rhs );
893   }
894 #endif
895 
896 #if !defined(VK_NO_PROTOTYPES)
897   class DispatchLoaderStatic
898   {
899   public:
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const900     VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT
901     {
902       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
903     }
904 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const905     VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
906     {
907       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
908     }
909 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const910     VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
911     {
912       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
913     }
914 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const915     VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT
916     {
917       return ::vkEnumerateInstanceVersion( pApiVersion );
918     }
919 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const920     VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT
921     {
922       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
923     }
924 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const925     void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
926     {
927       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
928     }
929 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const930     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
931     {
932       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
933     }
934 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const935     void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
936     {
937       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
938     }
939 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const940     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT
941     {
942       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
943     }
944 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const945     void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
946     {
947       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
948     }
949 
vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const950     void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
951     {
952       return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
953     }
954 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const955     void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
956     {
957       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
958     }
959 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const960     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
961     {
962       return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
963     }
964 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const965     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
966     {
967       return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
968     }
969 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const970     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
971     {
972       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
973     }
974 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const975     void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
976     {
977       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
978     }
979 
vkCmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex) const980     void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT
981     {
982       return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
983     }
984 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const985     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
986     {
987       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
988     }
989 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const990     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT
991     {
992       return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
993     }
994 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const995     void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT
996     {
997       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
998     }
999 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const1000     void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT
1001     {
1002       return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
1003     }
1004 
1005 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureIndirectKHR(VkCommandBuffer commandBuffer,const VkAccelerationStructureBuildGeometryInfoKHR * pInfo,VkBuffer indirectBuffer,VkDeviceSize indirectOffset,uint32_t indirectStride) const1006     void vkCmdBuildAccelerationStructureIndirectKHR( VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, uint32_t indirectStride ) const VULKAN_HPP_NOEXCEPT
1007     {
1008       return ::vkCmdBuildAccelerationStructureIndirectKHR( commandBuffer, pInfo, indirectBuffer, indirectOffset, indirectStride );
1009     }
1010 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1011 
1012 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1013     void vkCmdBuildAccelerationStructureKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1014     {
1015       return ::vkCmdBuildAccelerationStructureKHR( commandBuffer, infoCount, pInfos, ppOffsetInfos );
1016     }
1017 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1018 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkBuffer scratch,VkDeviceSize scratchOffset) const1019     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
1020     {
1021       return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
1022     }
1023 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const1024     void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT
1025     {
1026       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
1027     }
1028 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1029     void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1030     {
1031       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
1032     }
1033 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1034     void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1035     {
1036       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
1037     }
1038 
1039 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo) const1040     void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1041     {
1042       return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
1043     }
1044 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1045 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkCopyAccelerationStructureModeKHR mode) const1046     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
1047     {
1048       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
1049     }
1050 
1051 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1052     void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1053     {
1054       return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
1055     }
1056 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1057 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const1058     void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1059     {
1060       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
1061     }
1062 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1063     void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1064     {
1065       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
1066     }
1067 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const1068     void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1069     {
1070       return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1071     }
1072 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1073     void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1074     {
1075       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
1076     }
1077 
1078 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1079     void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1080     {
1081       return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
1082     }
1083 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1084 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const1085     void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1086     {
1087       return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
1088     }
1089 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1090     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1091     {
1092       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
1093     }
1094 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const1095     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1096     {
1097       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
1098     }
1099 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1100     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1101     {
1102       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
1103     }
1104 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1105     void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1106     {
1107       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
1108     }
1109 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1110     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
1111     {
1112       return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1113     }
1114 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1115     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
1116     {
1117       return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1118     }
1119 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const1120     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1121     {
1122       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
1123     }
1124 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const1125     void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1126     {
1127       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
1128     }
1129 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const1130     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1131     {
1132       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
1133     }
1134 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1135     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1136     {
1137       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
1138     }
1139 
vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1140     void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1141     {
1142       return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1143     }
1144 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1145     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1146     {
1147       return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1148     }
1149 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1150     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1151     {
1152       return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1153     }
1154 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1155     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1156     {
1157       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
1158     }
1159 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const1160     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT
1161     {
1162       return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
1163     }
1164 
vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1165     void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1166     {
1167       return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1168     }
1169 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1170     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1171     {
1172       return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1173     }
1174 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1175     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1176     {
1177       return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1178     }
1179 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1180     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1181     {
1182       return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1183     }
1184 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1185     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1186     {
1187       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
1188     }
1189 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const1190     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
1191     {
1192       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
1193     }
1194 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const1195     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1196     {
1197       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
1198     }
1199 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const1200     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1201     {
1202       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
1203     }
1204 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const1205     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1206     {
1207       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
1208     }
1209 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const1210     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1211     {
1212       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
1213     }
1214 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const1215     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1216     {
1217       return ::vkCmdEndRenderPass( commandBuffer );
1218     }
1219 
vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1220     void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1221     {
1222       return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
1223     }
1224 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1225     void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1226     {
1227       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
1228     }
1229 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1230     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1231     {
1232       return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1233     }
1234 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1235     void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1236     {
1237       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
1238     }
1239 
vkCmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1240     void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1241     {
1242       return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
1243     }
1244 
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const1245     void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
1246     {
1247       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
1248     }
1249 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1250     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1251     {
1252       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1253     }
1254 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const1255     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1256     {
1257       return ::vkCmdNextSubpass( commandBuffer, contents );
1258     }
1259 
vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1260     void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1261     {
1262       return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1263     }
1264 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1265     void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1266     {
1267       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1268     }
1269 
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) const1270     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
1271     {
1272       return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1273     }
1274 
vkCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1275     void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1276     {
1277       return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
1278     }
1279 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const1280     void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT
1281     {
1282       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
1283     }
1284 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const1285     void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
1286     {
1287       return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
1288     }
1289 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const1290     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT
1291     {
1292       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
1293     }
1294 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1295     void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1296     {
1297       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
1298     }
1299 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const1300     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
1301     {
1302       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
1303     }
1304 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const1305     void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT
1306     {
1307       return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1308     }
1309 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const1310     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
1311     {
1312       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
1313     }
1314 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const1315     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
1316     {
1317       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
1318     }
1319 
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const1320     void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
1321     {
1322       return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
1323     }
1324 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const1325     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
1326     {
1327       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
1328     }
1329 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const1330     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
1331     {
1332       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
1333     }
1334 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1335     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1336     {
1337       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
1338     }
1339 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1340     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1341     {
1342       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
1343     }
1344 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const1345     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
1346     {
1347       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
1348     }
1349 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1350     void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1351     {
1352       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
1353     }
1354 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const1355     void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
1356     {
1357       return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
1358     }
1359 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const1360     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
1361     {
1362       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
1363     }
1364 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const1365     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
1366     {
1367       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1368     }
1369 
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const1370     VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1371     {
1372       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
1373     }
1374 
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const1375     VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
1376     {
1377       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
1378     }
1379 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const1380     VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1381     {
1382       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
1383     }
1384 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const1385     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
1386     {
1387       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
1388     }
1389 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const1390     void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1391     {
1392       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1393     }
1394 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const1395     void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
1396     {
1397       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
1398     }
1399 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const1400     void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
1401     {
1402       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
1403     }
1404 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const1405     void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
1406     {
1407       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
1408     }
1409 
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const1410     void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1411     {
1412       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1413     }
1414 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const1415     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
1416     {
1417       return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
1418     }
1419 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const1420     void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
1421     {
1422       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
1423     }
1424 
1425 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedBufferRegionKHR * pRaygenShaderBindingTable,const VkStridedBufferRegionKHR * pMissShaderBindingTable,const VkStridedBufferRegionKHR * pHitShaderBindingTable,const VkStridedBufferRegionKHR * pCallableShaderBindingTable,VkBuffer buffer,VkDeviceSize offset) const1426     void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1427     {
1428       return ::vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, buffer, offset );
1429     }
1430 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1431 
1432 #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) const1433     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
1434     {
1435       return ::vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
1436     }
1437 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1438 
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) const1439     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
1440     {
1441       return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth );
1442     }
1443 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const1444     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT
1445     {
1446       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
1447     }
1448 
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) const1449     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
1450     {
1451       return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1452     }
1453 
vkCmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1454     void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1455     {
1456       return ::vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1457     }
1458 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1459     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1460     {
1461       return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1462     }
1463 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const1464     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
1465     {
1466       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
1467     }
1468 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const1469     void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1470     {
1471       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
1472     }
1473 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const1474     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1475     {
1476       return ::vkEndCommandBuffer( commandBuffer );
1477     }
1478 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const1479     VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1480     {
1481       return ::vkResetCommandBuffer( commandBuffer, flags );
1482     }
1483 
1484 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const1485     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
1486     {
1487       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
1488     }
1489 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1490 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const1491     VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1492     {
1493       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
1494     }
1495 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const1496     VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1497     {
1498       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
1499     }
1500 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const1501     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT
1502     {
1503       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
1504     }
1505 
vkAcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo) const1506     VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1507     {
1508       return ::vkAcquireProfilingLockKHR( device, pInfo );
1509     }
1510 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const1511     VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1512     {
1513       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1514     }
1515 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1516     VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1517     {
1518       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1519     }
1520 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1521     VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT
1522     {
1523       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1524     }
1525 
vkBindAccelerationStructureMemoryKHR(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1526     VkResult vkBindAccelerationStructureMemoryKHR( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1527     {
1528       return ::vkBindAccelerationStructureMemoryKHR( device, bindInfoCount, pBindInfos );
1529     }
1530 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1531     VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1532     {
1533       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
1534     }
1535 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1536     VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1537     {
1538       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1539     }
1540 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1541     VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1542     {
1543       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
1544     }
1545 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1546     VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1547     {
1548       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
1549     }
1550 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1551     VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1552     {
1553       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1554     }
1555 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1556     VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1557     {
1558       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
1559     }
1560 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1561     VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1562     {
1563       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
1564     }
1565 
1566 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkBuildAccelerationStructureKHR(VkDevice device,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1567     VkResult vkBuildAccelerationStructureKHR( VkDevice device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1568     {
1569       return ::vkBuildAccelerationStructureKHR( device, infoCount, pInfos, ppOffsetInfos );
1570     }
1571 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1572 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const1573     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
1574     {
1575       return ::vkCompileDeferredNV( device, pipeline, shader );
1576     }
1577 
1578 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureKHR(VkDevice device,const VkCopyAccelerationStructureInfoKHR * pInfo) const1579     VkResult vkCopyAccelerationStructureKHR( VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1580     {
1581       return ::vkCopyAccelerationStructureKHR( device, pInfo );
1582     }
1583 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1584 
1585 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureToMemoryKHR(VkDevice device,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1586     VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1587     {
1588       return ::vkCopyAccelerationStructureToMemoryKHR( device, pInfo );
1589     }
1590 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1591 
1592 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyMemoryToAccelerationStructureKHR(VkDevice device,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1593     VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1594     {
1595       return ::vkCopyMemoryToAccelerationStructureKHR( device, pInfo );
1596     }
1597 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1598 
1599 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure) const1600     VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1601     {
1602       return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
1603     }
1604 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1605 
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const1606     VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1607     {
1608       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
1609     }
1610 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const1611     VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT
1612     {
1613       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
1614     }
1615 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const1616     VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT
1617     {
1618       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
1619     }
1620 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const1621     VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT
1622     {
1623       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
1624     }
1625 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1626     VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
1627     {
1628       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1629     }
1630 
1631 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation) const1632     VkResult vkCreateDeferredOperationKHR( VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
1633     {
1634       return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
1635     }
1636 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1637 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const1638     VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
1639     {
1640       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
1641     }
1642 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const1643     VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT
1644     {
1645       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
1646     }
1647 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const1648     VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
1649     {
1650       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
1651     }
1652 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const1653     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
1654     {
1655       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
1656     }
1657 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const1658     VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT
1659     {
1660       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
1661     }
1662 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const1663     VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
1664     {
1665       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
1666     }
1667 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const1668     VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT
1669     {
1670       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
1671     }
1672 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1673     VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
1674     {
1675       return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1676     }
1677 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const1678     VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT
1679     {
1680       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
1681     }
1682 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const1683     VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT
1684     {
1685       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
1686     }
1687 
vkCreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout) const1688     VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
1689     {
1690       return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
1691     }
1692 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const1693     VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT
1694     {
1695       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
1696     }
1697 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const1698     VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
1699     {
1700       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
1701     }
1702 
vkCreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlotEXT * pPrivateDataSlot) const1703     VkResult vkCreatePrivateDataSlotEXT( VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
1704     {
1705       return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
1706     }
1707 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const1708     VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT
1709     {
1710       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
1711     }
1712 
1713 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateRayTracingPipelinesKHR(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1714     VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
1715     {
1716       return ::vkCreateRayTracingPipelinesKHR( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1717     }
1718 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1719 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1720     VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
1721     {
1722       return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1723     }
1724 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const1725     VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
1726     {
1727       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
1728     }
1729 
vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const1730     VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
1731     {
1732       return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
1733     }
1734 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const1735     VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
1736     {
1737       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
1738     }
1739 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const1740     VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT
1741     {
1742       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
1743     }
1744 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const1745     VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
1746     {
1747       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
1748     }
1749 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const1750     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
1751     {
1752       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
1753     }
1754 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const1755     VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT
1756     {
1757       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
1758     }
1759 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const1760     VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT
1761     {
1762       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
1763     }
1764 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const1765     VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT
1766     {
1767       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
1768     }
1769 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const1770     VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT
1771     {
1772       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
1773     }
1774 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const1775     VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT
1776     {
1777       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
1778     }
1779 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const1780     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
1781     {
1782       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
1783     }
1784 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const1785     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
1786     {
1787       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
1788     }
1789 
1790 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation) const1791     VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
1792     {
1793       return ::vkDeferredOperationJoinKHR( device, operation );
1794     }
1795 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1796 
vkDestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const1797     void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1798     {
1799       return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
1800     }
1801 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const1802     void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1803     {
1804       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
1805     }
1806 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const1807     void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1808     {
1809       return ::vkDestroyBuffer( device, buffer, pAllocator );
1810     }
1811 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const1812     void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1813     {
1814       return ::vkDestroyBufferView( device, bufferView, pAllocator );
1815     }
1816 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const1817     void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1818     {
1819       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
1820     }
1821 
1822 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator) const1823     void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1824     {
1825       return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
1826     }
1827 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1828 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const1829     void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1830     {
1831       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
1832     }
1833 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const1834     void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1835     {
1836       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
1837     }
1838 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const1839     void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1840     {
1841       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
1842     }
1843 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const1844     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1845     {
1846       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
1847     }
1848 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const1849     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1850     {
1851       return ::vkDestroyDevice( device, pAllocator );
1852     }
1853 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const1854     void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1855     {
1856       return ::vkDestroyEvent( device, event, pAllocator );
1857     }
1858 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const1859     void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1860     {
1861       return ::vkDestroyFence( device, fence, pAllocator );
1862     }
1863 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const1864     void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1865     {
1866       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
1867     }
1868 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const1869     void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1870     {
1871       return ::vkDestroyImage( device, image, pAllocator );
1872     }
1873 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const1874     void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1875     {
1876       return ::vkDestroyImageView( device, imageView, pAllocator );
1877     }
1878 
vkDestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const1879     void vkDestroyIndirectCommandsLayoutNV( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1880     {
1881       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
1882     }
1883 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const1884     void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1885     {
1886       return ::vkDestroyPipeline( device, pipeline, pAllocator );
1887     }
1888 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const1889     void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1890     {
1891       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
1892     }
1893 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const1894     void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1895     {
1896       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
1897     }
1898 
vkDestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlotEXT privateDataSlot,const VkAllocationCallbacks * pAllocator) const1899     void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1900     {
1901       return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
1902     }
1903 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const1904     void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1905     {
1906       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
1907     }
1908 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const1909     void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1910     {
1911       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
1912     }
1913 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const1914     void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1915     {
1916       return ::vkDestroySampler( device, sampler, pAllocator );
1917     }
1918 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const1919     void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1920     {
1921       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
1922     }
1923 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const1924     void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1925     {
1926       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
1927     }
1928 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const1929     void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1930     {
1931       return ::vkDestroySemaphore( device, semaphore, pAllocator );
1932     }
1933 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const1934     void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1935     {
1936       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
1937     }
1938 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const1939     void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1940     {
1941       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
1942     }
1943 
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const1944     void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1945     {
1946       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
1947     }
1948 
vkDeviceWaitIdle(VkDevice device) const1949     VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
1950     {
1951       return ::vkDeviceWaitIdle( device );
1952     }
1953 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const1954     VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
1955     {
1956       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
1957     }
1958 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const1959     VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
1960     {
1961       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1962     }
1963 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1964     void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1965     {
1966       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
1967     }
1968 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const1969     VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1970     {
1971       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
1972     }
1973 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const1974     void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
1975     {
1976       return ::vkFreeMemory( device, memory, pAllocator );
1977     }
1978 
1979 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo) const1980     VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1981     {
1982       return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
1983     }
1984 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1985 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData) const1986     VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
1987     {
1988       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
1989     }
1990 
1991 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureMemoryRequirementsKHR(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoKHR * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const1992     void vkGetAccelerationStructureMemoryRequirementsKHR( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1993     {
1994       return ::vkGetAccelerationStructureMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
1995     }
1996 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1997 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const1998     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1999     {
2000       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2001     }
2002 
2003 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const2004     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT
2005     {
2006       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
2007     }
2008 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2009 
vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2010     VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2011     {
2012       return ::vkGetBufferDeviceAddress( device, pInfo );
2013     }
2014 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2015     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2016     {
2017       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
2018     }
2019 
vkGetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2020     VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2021     {
2022       return ::vkGetBufferDeviceAddressKHR( device, pInfo );
2023     }
2024 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const2025     void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2026     {
2027       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
2028     }
2029 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2030     void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2031     {
2032       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2033     }
2034 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2035     void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2036     {
2037       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2038     }
2039 
vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2040     uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2041     {
2042       return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2043     }
2044 
vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2045     uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2046     {
2047       return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
2048     }
2049 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const2050     VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
2051     {
2052       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
2053     }
2054 
2055 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation) const2056     uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2057     {
2058       return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
2059     }
2060 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2061 
2062 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation) const2063     VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2064     {
2065       return ::vkGetDeferredOperationResultKHR( device, operation );
2066     }
2067 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2068 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2069     void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2070     {
2071       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2072     }
2073 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2074     void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2075     {
2076       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
2077     }
2078 
2079 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionKHR * version) const2080     VkResult vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionKHR* version ) const VULKAN_HPP_NOEXCEPT
2081     {
2082       return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, version );
2083     }
2084 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2085 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2086     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2087     {
2088       return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2089     }
2090 
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2091     void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2092     {
2093       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2094     }
2095 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const2096     VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2097     {
2098       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2099     }
2100 
2101 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const2102     VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2103     {
2104       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
2105     }
2106 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2107 
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const2108     VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2109     {
2110       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2111     }
2112 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const2113     void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
2114     {
2115       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
2116     }
2117 
vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2118     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2119     {
2120       return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2121     }
2122 
vkGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2123     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2124     {
2125       return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
2126     }
2127 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const2128     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT
2129     {
2130       return ::vkGetDeviceProcAddr( device, pName );
2131     }
2132 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const2133     void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2134     {
2135       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
2136     }
2137 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const2138     void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2139     {
2140       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2141     }
2142 
vkGetEventStatus(VkDevice device,VkEvent event) const2143     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
2144     {
2145       return ::vkGetEventStatus( device, event );
2146     }
2147 
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const2148     VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2149     {
2150       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
2151     }
2152 
vkGetFenceStatus(VkDevice device,VkFence fence) const2153     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
2154     {
2155       return ::vkGetFenceStatus( device, fence );
2156     }
2157 
2158 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2159     VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2160     {
2161       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2162     }
2163 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2164 
vkGetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2165     void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2166     {
2167       return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2168     }
2169 
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const2170     VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT
2171     {
2172       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
2173     }
2174 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const2175     void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2176     {
2177       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
2178     }
2179 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2180     void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2181     {
2182       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2183     }
2184 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2185     void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2186     {
2187       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2188     }
2189 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const2190     void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2191     {
2192       return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2193     }
2194 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2195     void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2196     {
2197       return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2198     }
2199 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2200     void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2201     {
2202       return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2203     }
2204 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const2205     void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT
2206     {
2207       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
2208     }
2209 
vkGetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties) const2210     VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) const VULKAN_HPP_NOEXCEPT
2211     {
2212       return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
2213     }
2214 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const2215     uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT
2216     {
2217       return ::vkGetImageViewHandleNVX( device, pInfo );
2218     }
2219 
2220 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const2221     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT
2222     {
2223       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
2224     }
2225 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2226 
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const2227     VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2228     {
2229       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
2230     }
2231 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const2232     VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
2233     {
2234       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
2235     }
2236 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const2237     VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
2238     {
2239       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
2240     }
2241 
2242 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2243     VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2244     {
2245       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2246     }
2247 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2248 
2249 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const2250     VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2251     {
2252       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
2253     }
2254 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2255 
2256 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const2257     VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
2258     {
2259       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
2260     }
2261 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2262 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const2263     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
2264     {
2265       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
2266     }
2267 
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const2268     VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT
2269     {
2270       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
2271     }
2272 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const2273     VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2274     {
2275       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
2276     }
2277 
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const2278     VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
2279     {
2280       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
2281     }
2282 
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const2283     VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2284     {
2285       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
2286     }
2287 
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const2288     VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT
2289     {
2290       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
2291     }
2292 
vkGetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t * pData) const2293     void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) const VULKAN_HPP_NOEXCEPT
2294     {
2295       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
2296     }
2297 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const2298     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
2299     {
2300       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
2301     }
2302 
2303 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const2304     VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2305     {
2306       return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
2307     }
2308 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2309 
vkGetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const2310     VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2311     {
2312       return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
2313     }
2314 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const2315     VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2316     {
2317       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
2318     }
2319 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const2320     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
2321     {
2322       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
2323     }
2324 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const2325     void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT
2326     {
2327       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
2328     }
2329 
vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const2330     VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
2331     {
2332       return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
2333     }
2334 
vkGetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const2335     VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
2336     {
2337       return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
2338     }
2339 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const2340     VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2341     {
2342       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
2343     }
2344 
2345 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2346     VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2347     {
2348       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2349     }
2350 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2351 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const2352     VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT
2353     {
2354       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
2355     }
2356 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const2357     VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT
2358     {
2359       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
2360     }
2361 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const2362     VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
2363     {
2364       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
2365     }
2366 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const2367     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
2368     {
2369       return ::vkGetSwapchainStatusKHR( device, swapchain );
2370     }
2371 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const2372     VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2373     {
2374       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
2375     }
2376 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const2377     VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
2378     {
2379       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
2380     }
2381 
2382 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const2383     VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
2384     {
2385       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
2386     }
2387 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2388 
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const2389     VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
2390     {
2391       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
2392     }
2393 
2394 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const2395     VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
2396     {
2397       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
2398     }
2399 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2400 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const2401     VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
2402     {
2403       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
2404     }
2405 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const2406     VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
2407     {
2408       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
2409     }
2410 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const2411     VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT
2412     {
2413       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
2414     }
2415 
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const2416     VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
2417     {
2418       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
2419     }
2420 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const2421     VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
2422     {
2423       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
2424     }
2425 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const2426     VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
2427     {
2428       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
2429     }
2430 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const2431     VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
2432     {
2433       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
2434     }
2435 
2436 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const2437     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
2438     {
2439       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
2440     }
2441 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2442 
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const2443     VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
2444     {
2445       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
2446     }
2447 
vkReleaseProfilingLockKHR(VkDevice device) const2448     void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
2449     {
2450       return ::vkReleaseProfilingLockKHR( device );
2451     }
2452 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const2453     VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
2454     {
2455       return ::vkResetCommandPool( device, commandPool, flags );
2456     }
2457 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const2458     VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
2459     {
2460       return ::vkResetDescriptorPool( device, descriptorPool, flags );
2461     }
2462 
vkResetEvent(VkDevice device,VkEvent event) const2463     VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
2464     {
2465       return ::vkResetEvent( device, event );
2466     }
2467 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const2468     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT
2469     {
2470       return ::vkResetFences( device, fenceCount, pFences );
2471     }
2472 
vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const2473     void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
2474     {
2475       return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
2476     }
2477 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const2478     void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
2479     {
2480       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
2481     }
2482 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const2483     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
2484     {
2485       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
2486     }
2487 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const2488     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
2489     {
2490       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
2491     }
2492 
vkSetEvent(VkDevice device,VkEvent event) const2493     VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
2494     {
2495       return ::vkSetEvent( device, event );
2496     }
2497 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const2498     void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT
2499     {
2500       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
2501     }
2502 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const2503     void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
2504     {
2505       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
2506     }
2507 
vkSetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t data) const2508     VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) const VULKAN_HPP_NOEXCEPT
2509     {
2510       return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
2511     }
2512 
vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const2513     VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
2514     {
2515       return ::vkSignalSemaphore( device, pSignalInfo );
2516     }
2517 
vkSignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const2518     VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
2519     {
2520       return ::vkSignalSemaphoreKHR( device, pSignalInfo );
2521     }
2522 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const2523     void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
2524     {
2525       return ::vkTrimCommandPool( device, commandPool, flags );
2526     }
2527 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const2528     void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
2529     {
2530       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
2531     }
2532 
vkUninitializePerformanceApiINTEL(VkDevice device) const2533     void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
2534     {
2535       return ::vkUninitializePerformanceApiINTEL( device );
2536     }
2537 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const2538     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
2539     {
2540       return ::vkUnmapMemory( device, memory );
2541     }
2542 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const2543     void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
2544     {
2545       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
2546     }
2547 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const2548     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
2549     {
2550       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
2551     }
2552 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const2553     void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
2554     {
2555       return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
2556     }
2557 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const2558     VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
2559     {
2560       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
2561     }
2562 
vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const2563     VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
2564     {
2565       return ::vkWaitSemaphores( device, pWaitInfo, timeout );
2566     }
2567 
vkWaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const2568     VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
2569     {
2570       return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
2571     }
2572 
2573 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkWriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const2574     VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) const VULKAN_HPP_NOEXCEPT
2575     {
2576       return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
2577     }
2578 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2579 
2580 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2581     VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2582     {
2583       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2584     }
2585 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2586 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const2587     VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT
2588     {
2589       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
2590     }
2591 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const2592     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT
2593     {
2594       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
2595     }
2596 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2597     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2598     {
2599       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2600     }
2601 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2602     VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2603     {
2604       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2605     }
2606 
2607 #ifdef VK_USE_PLATFORM_IOS_MVK
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2608     VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2609     {
2610       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2611     }
2612 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2613 
2614 #ifdef VK_USE_PLATFORM_FUCHSIA
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2615     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2616     {
2617       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
2618     }
2619 #endif /*VK_USE_PLATFORM_FUCHSIA*/
2620 
2621 #ifdef VK_USE_PLATFORM_MACOS_MVK
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2622     VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2623     {
2624       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2625     }
2626 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2627 
2628 #ifdef VK_USE_PLATFORM_METAL_EXT
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2629     VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2630     {
2631       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2632     }
2633 #endif /*VK_USE_PLATFORM_METAL_EXT*/
2634 
2635 #ifdef VK_USE_PLATFORM_GGP
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2636     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2637     {
2638       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
2639     }
2640 #endif /*VK_USE_PLATFORM_GGP*/
2641 
2642 #ifdef VK_USE_PLATFORM_VI_NN
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2643     VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2644     {
2645       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
2646     }
2647 #endif /*VK_USE_PLATFORM_VI_NN*/
2648 
2649 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2650     VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2651     {
2652       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2653     }
2654 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2655 
2656 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2657     VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2658     {
2659       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2660     }
2661 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2662 
2663 #ifdef VK_USE_PLATFORM_XCB_KHR
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2664     VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2665     {
2666       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2667     }
2668 #endif /*VK_USE_PLATFORM_XCB_KHR*/
2669 
2670 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2671     VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2672     {
2673       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2674     }
2675 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
2676 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const2677     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
2678     {
2679       return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
2680     }
2681 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const2682     void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2683     {
2684       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
2685     }
2686 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const2687     void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2688     {
2689       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
2690     }
2691 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const2692     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2693     {
2694       return ::vkDestroyInstance( instance, pAllocator );
2695     }
2696 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2697     void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2698     {
2699       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2700     }
2701 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2702     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2703     {
2704       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2705     }
2706 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2707     VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2708     {
2709       return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2710     }
2711 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const2712     VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
2713     {
2714       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
2715     }
2716 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const2717     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT
2718     {
2719       return ::vkGetInstanceProcAddr( instance, pName );
2720     }
2721 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const2722     void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT
2723     {
2724       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
2725     }
2726 
2727 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const2728     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
2729     {
2730       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
2731     }
2732 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
2733 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const2734     VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT
2735     {
2736       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
2737     }
2738 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2739     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT
2740     {
2741       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2742     }
2743 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2744     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2745     {
2746       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
2747     }
2748 
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2749     VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2750     {
2751       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
2752     }
2753 
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions) const2754     VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
2755     {
2756       return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
2757     }
2758 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const2759     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2760     {
2761       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
2762     }
2763 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2764     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2765     {
2766       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2767     }
2768 
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const2769     VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2770     {
2771       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
2772     }
2773 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2774     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2775     {
2776       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2777     }
2778 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2779     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT
2780     {
2781       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2782     }
2783 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const2784     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT
2785     {
2786       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
2787     }
2788 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const2789     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT
2790     {
2791       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
2792     }
2793 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const2794     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2795     {
2796       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2797     }
2798 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2799     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2800     {
2801       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2802     }
2803 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const2804     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2805     {
2806       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2807     }
2808 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2809     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2810     {
2811       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2812     }
2813 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2814     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2815     {
2816       return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2817     }
2818 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2819     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2820     {
2821       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2822     }
2823 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2824     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2825     {
2826       return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2827     }
2828 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2829     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2830     {
2831       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2832     }
2833 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const2834     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2835     {
2836       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
2837     }
2838 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2839     void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2840     {
2841       return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2842     }
2843 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2844     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2845     {
2846       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2847     }
2848 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const2849     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT
2850     {
2851       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
2852     }
2853 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2854     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2855     {
2856       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2857     }
2858 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2859     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2860     {
2861       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
2862     }
2863 
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const2864     void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2865     {
2866       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
2867     }
2868 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2869     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2870     {
2871       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2872     }
2873 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2874     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2875     {
2876       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
2877     }
2878 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const2879     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2880     {
2881       return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
2882     }
2883 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2884     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2885     {
2886       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2887     }
2888 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2889     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2890     {
2891       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2892     }
2893 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const2894     void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
2895     {
2896       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
2897     }
2898 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const2899     void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
2900     {
2901       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
2902     }
2903 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const2904     void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
2905     {
2906       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
2907     }
2908 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const2909     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
2910     {
2911       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
2912     }
2913 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const2914     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT
2915     {
2916       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
2917     }
2918 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const2919     void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2920     {
2921       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
2922     }
2923 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const2924     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
2925     {
2926       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
2927     }
2928 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const2929     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
2930     {
2931       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
2932     }
2933 
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses) const2934     void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT
2935     {
2936       return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
2937     }
2938 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const2939     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
2940     {
2941       return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2942     }
2943 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const2944     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
2945     {
2946       return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2947     }
2948 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const2949     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
2950     {
2951       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2952     }
2953 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const2954     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2955     {
2956       return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
2957     }
2958 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const2959     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
2960     {
2961       return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
2962     }
2963 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const2964     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
2965     {
2966       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
2967     }
2968 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const2969     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT
2970     {
2971       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
2972     }
2973 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const2974     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
2975     {
2976       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
2977     }
2978 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const2979     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
2980     {
2981       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
2982     }
2983 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const2984     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
2985     {
2986       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
2987     }
2988 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const2989     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
2990     {
2991       return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
2992     }
2993 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const2994     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
2995     {
2996       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
2997     }
2998 
2999 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3000     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3001     {
3002       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
3003     }
3004 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3005 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3006     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3007     {
3008       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
3009     }
3010 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const3011     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT
3012     {
3013       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
3014     }
3015 
vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolPropertiesEXT * pToolProperties) const3016     VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT
3017     {
3018       return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
3019     }
3020 
3021 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const3022     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT
3023     {
3024       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
3025     }
3026 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3027 
3028 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const3029     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
3030     {
3031       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
3032     }
3033 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3034 
3035 #ifdef VK_USE_PLATFORM_XCB_KHR
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const3036     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT
3037     {
3038       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
3039     }
3040 #endif /*VK_USE_PLATFORM_XCB_KHR*/
3041 
3042 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const3043     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT
3044     {
3045       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
3046     }
3047 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
3048 
3049 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const3050     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT
3051     {
3052       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3053     }
3054 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3055 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const3056     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3057     {
3058       return ::vkReleaseDisplayEXT( physicalDevice, display );
3059     }
3060 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const3061     void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT
3062     {
3063       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
3064     }
3065 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3066     void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3067     {
3068       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
3069     }
3070 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const3071     VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3072     {
3073       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
3074     }
3075 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const3076     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3077     {
3078       return ::vkQueueEndDebugUtilsLabelEXT( queue );
3079     }
3080 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3081     void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3082     {
3083       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
3084     }
3085 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const3086     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT
3087     {
3088       return ::vkQueuePresentKHR( queue, pPresentInfo );
3089     }
3090 
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const3091     VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3092     {
3093       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
3094     }
3095 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const3096     VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3097     {
3098       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
3099     }
3100 
vkQueueWaitIdle(VkQueue queue) const3101     VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3102     {
3103       return ::vkQueueWaitIdle( queue );
3104     }
3105   };
3106 #endif
3107 
3108   class DispatchLoaderDynamic;
3109 #if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC)
3110 # if defined(VK_NO_PROTOTYPES)
3111 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
3112 # else
3113 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
3114 # endif
3115 #endif
3116 
3117 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER)
3118 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3119 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
3120 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { DispatchLoaderDynamic defaultDispatchLoaderDynamic; }
3121   extern DispatchLoaderDynamic defaultDispatchLoaderDynamic;
3122 # else
3123 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic()
3124 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
3125 # endif
3126 #endif
3127 
3128 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE)
3129 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3130   #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
3131 # else
3132 #  define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
3133 # endif
3134 #endif
3135 
3136   struct AllocationCallbacks;
3137 
3138   template <typename OwnerType, typename Dispatch>
3139   class ObjectDestroy
3140   {
3141     public:
ObjectDestroy()3142       ObjectDestroy()
3143         : m_owner()
3144         , m_allocationCallbacks( nullptr )
3145         , m_dispatch( nullptr )
3146       {}
3147 
ObjectDestroy(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks=nullptr,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3148       ObjectDestroy( OwnerType owner, Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3149         : m_owner( owner )
3150         , m_allocationCallbacks( allocationCallbacks )
3151         , m_dispatch( &dispatch )
3152       {}
3153 
getOwner() const3154       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getAllocator() const3155       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3156 
3157     protected:
3158       template <typename T>
destroy(T t)3159       void destroy(T t) VULKAN_HPP_NOEXCEPT
3160       {
3161         VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3162         m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
3163       }
3164 
3165     private:
3166       OwnerType m_owner;
3167       Optional<const AllocationCallbacks> m_allocationCallbacks;
3168       Dispatch const* m_dispatch;
3169   };
3170 
3171   class NoParent;
3172 
3173   template <typename Dispatch>
3174   class ObjectDestroy<NoParent,Dispatch>
3175   {
3176     public:
ObjectDestroy()3177       ObjectDestroy()
3178         : m_allocationCallbacks( nullptr )
3179         , m_dispatch( nullptr )
3180       {}
3181 
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3182       ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks, Dispatch const &dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3183         : m_allocationCallbacks( allocationCallbacks )
3184         , m_dispatch( &dispatch )
3185       {}
3186 
getAllocator() const3187       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3188 
3189     protected:
3190       template <typename T>
destroy(T t)3191       void destroy(T t) VULKAN_HPP_NOEXCEPT
3192       {
3193         VULKAN_HPP_ASSERT( m_dispatch );
3194         t.destroy( m_allocationCallbacks, *m_dispatch );
3195       }
3196 
3197     private:
3198       Optional<const AllocationCallbacks> m_allocationCallbacks;
3199       Dispatch const* m_dispatch;
3200   };
3201 
3202   template <typename OwnerType, typename Dispatch>
3203   class ObjectFree
3204   {
3205     public:
ObjectFree()3206       ObjectFree()
3207         : m_owner()
3208         , m_allocationCallbacks( nullptr )
3209         , m_dispatch( nullptr )
3210       {}
3211 
ObjectFree(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch)3212       ObjectFree( OwnerType owner, Optional<const AllocationCallbacks> allocationCallbacks, Dispatch const &dispatch ) VULKAN_HPP_NOEXCEPT
3213         : m_owner( owner )
3214         , m_allocationCallbacks( allocationCallbacks )
3215         , m_dispatch( &dispatch )
3216       {}
3217 
getOwner() const3218       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getAllocator() const3219       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3220 
3221     protected:
3222       template <typename T>
destroy(T t)3223       void destroy(T t) VULKAN_HPP_NOEXCEPT
3224       {
3225         VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3226         m_owner.free( t, m_allocationCallbacks, *m_dispatch );
3227       }
3228 
3229     private:
3230       OwnerType m_owner;
3231       Optional<const AllocationCallbacks> m_allocationCallbacks;
3232       Dispatch const* m_dispatch;
3233   };
3234 
3235   template <typename OwnerType, typename PoolType, typename Dispatch>
3236   class PoolFree
3237   {
3238     public:
PoolFree(OwnerType owner=OwnerType (),PoolType pool=PoolType (),Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3239       PoolFree( OwnerType owner = OwnerType(), PoolType pool = PoolType(), Dispatch const &dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3240         : m_owner( owner )
3241         , m_pool( pool )
3242         , m_dispatch( &dispatch )
3243       {}
3244 
getOwner() const3245       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getPool() const3246       PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; }
3247 
3248     protected:
3249       template <typename T>
destroy(T t)3250       void destroy(T t) VULKAN_HPP_NOEXCEPT
3251       {
3252         m_owner.free( m_pool, t, *m_dispatch );
3253       }
3254 
3255     private:
3256       OwnerType m_owner;
3257       PoolType m_pool;
3258       Dispatch const* m_dispatch;
3259   };
3260 
3261   using Bool32 = uint32_t;
3262   using DeviceAddress = uint64_t;
3263   using DeviceSize = uint64_t;
3264   using SampleMask = uint32_t;
3265 
3266   template <typename EnumType, EnumType value>
3267   struct CppType
3268   {};
3269 
3270 #ifdef VK_ENABLE_BETA_EXTENSIONS
3271   enum class AccelerationStructureBuildTypeKHR
3272   {
3273     eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
3274     eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
3275     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
3276   };
3277 
to_string(AccelerationStructureBuildTypeKHR value)3278   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
3279   {
3280     switch ( value )
3281     {
3282       case AccelerationStructureBuildTypeKHR::eHost : return "Host";
3283       case AccelerationStructureBuildTypeKHR::eDevice : return "Device";
3284       case AccelerationStructureBuildTypeKHR::eHostOrDevice : return "HostOrDevice";
3285       default: return "invalid";
3286     }
3287   }
3288 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3289 
3290   enum class AccelerationStructureMemoryRequirementsTypeKHR
3291   {
3292     eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
3293     eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
3294     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR
3295   };
3296   using AccelerationStructureMemoryRequirementsTypeNV = AccelerationStructureMemoryRequirementsTypeKHR;
3297 
to_string(AccelerationStructureMemoryRequirementsTypeKHR value)3298   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeKHR value )
3299   {
3300     switch ( value )
3301     {
3302       case AccelerationStructureMemoryRequirementsTypeKHR::eObject : return "Object";
3303       case AccelerationStructureMemoryRequirementsTypeKHR::eBuildScratch : return "BuildScratch";
3304       case AccelerationStructureMemoryRequirementsTypeKHR::eUpdateScratch : return "UpdateScratch";
3305       default: return "invalid";
3306     }
3307   }
3308 
3309   enum class AccelerationStructureTypeKHR
3310   {
3311     eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
3312     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR
3313   };
3314   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
3315 
to_string(AccelerationStructureTypeKHR value)3316   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
3317   {
3318     switch ( value )
3319     {
3320       case AccelerationStructureTypeKHR::eTopLevel : return "TopLevel";
3321       case AccelerationStructureTypeKHR::eBottomLevel : return "BottomLevel";
3322       default: return "invalid";
3323     }
3324   }
3325 
3326   enum class AccessFlagBits : VkAccessFlags
3327   {
3328     eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
3329     eIndexRead = VK_ACCESS_INDEX_READ_BIT,
3330     eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
3331     eUniformRead = VK_ACCESS_UNIFORM_READ_BIT,
3332     eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
3333     eShaderRead = VK_ACCESS_SHADER_READ_BIT,
3334     eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT,
3335     eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
3336     eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
3337     eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
3338     eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
3339     eTransferRead = VK_ACCESS_TRANSFER_READ_BIT,
3340     eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
3341     eHostRead = VK_ACCESS_HOST_READ_BIT,
3342     eHostWrite = VK_ACCESS_HOST_WRITE_BIT,
3343     eMemoryRead = VK_ACCESS_MEMORY_READ_BIT,
3344     eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT,
3345     eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
3346     eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
3347     eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
3348     eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
3349     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
3350     eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3351     eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3352     eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
3353     eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
3354     eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
3355     eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
3356     eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
3357     eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV
3358   };
3359 
to_string(AccessFlagBits value)3360   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
3361   {
3362     switch ( value )
3363     {
3364       case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead";
3365       case AccessFlagBits::eIndexRead : return "IndexRead";
3366       case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead";
3367       case AccessFlagBits::eUniformRead : return "UniformRead";
3368       case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead";
3369       case AccessFlagBits::eShaderRead : return "ShaderRead";
3370       case AccessFlagBits::eShaderWrite : return "ShaderWrite";
3371       case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead";
3372       case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite";
3373       case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead";
3374       case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite";
3375       case AccessFlagBits::eTransferRead : return "TransferRead";
3376       case AccessFlagBits::eTransferWrite : return "TransferWrite";
3377       case AccessFlagBits::eHostRead : return "HostRead";
3378       case AccessFlagBits::eHostWrite : return "HostWrite";
3379       case AccessFlagBits::eMemoryRead : return "MemoryRead";
3380       case AccessFlagBits::eMemoryWrite : return "MemoryWrite";
3381       case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT";
3382       case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT";
3383       case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT";
3384       case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT";
3385       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT";
3386       case AccessFlagBits::eAccelerationStructureReadKHR : return "AccelerationStructureReadKHR";
3387       case AccessFlagBits::eAccelerationStructureWriteKHR : return "AccelerationStructureWriteKHR";
3388       case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV";
3389       case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT";
3390       case AccessFlagBits::eCommandPreprocessReadNV : return "CommandPreprocessReadNV";
3391       case AccessFlagBits::eCommandPreprocessWriteNV : return "CommandPreprocessWriteNV";
3392       default: return "invalid";
3393     }
3394   }
3395 
3396   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
3397   {};
3398 
to_string(AcquireProfilingLockFlagBitsKHR)3399   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
3400   {
3401     return "(void)";
3402   }
3403 
3404   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
3405   {
3406     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
3407   };
3408 
to_string(AttachmentDescriptionFlagBits value)3409   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
3410   {
3411     switch ( value )
3412     {
3413       case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias";
3414       default: return "invalid";
3415     }
3416   }
3417 
3418   enum class AttachmentLoadOp
3419   {
3420     eLoad = VK_ATTACHMENT_LOAD_OP_LOAD,
3421     eClear = VK_ATTACHMENT_LOAD_OP_CLEAR,
3422     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
3423   };
3424 
to_string(AttachmentLoadOp value)3425   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
3426   {
3427     switch ( value )
3428     {
3429       case AttachmentLoadOp::eLoad : return "Load";
3430       case AttachmentLoadOp::eClear : return "Clear";
3431       case AttachmentLoadOp::eDontCare : return "DontCare";
3432       default: return "invalid";
3433     }
3434   }
3435 
3436   enum class AttachmentStoreOp
3437   {
3438     eStore = VK_ATTACHMENT_STORE_OP_STORE,
3439     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
3440     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
3441   };
3442 
to_string(AttachmentStoreOp value)3443   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
3444   {
3445     switch ( value )
3446     {
3447       case AttachmentStoreOp::eStore : return "Store";
3448       case AttachmentStoreOp::eDontCare : return "DontCare";
3449       case AttachmentStoreOp::eNoneQCOM : return "NoneQCOM";
3450       default: return "invalid";
3451     }
3452   }
3453 
3454   enum class BlendFactor
3455   {
3456     eZero = VK_BLEND_FACTOR_ZERO,
3457     eOne = VK_BLEND_FACTOR_ONE,
3458     eSrcColor = VK_BLEND_FACTOR_SRC_COLOR,
3459     eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
3460     eDstColor = VK_BLEND_FACTOR_DST_COLOR,
3461     eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
3462     eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA,
3463     eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
3464     eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA,
3465     eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
3466     eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR,
3467     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
3468     eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA,
3469     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
3470     eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
3471     eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR,
3472     eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
3473     eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA,
3474     eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
3475   };
3476 
to_string(BlendFactor value)3477   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
3478   {
3479     switch ( value )
3480     {
3481       case BlendFactor::eZero : return "Zero";
3482       case BlendFactor::eOne : return "One";
3483       case BlendFactor::eSrcColor : return "SrcColor";
3484       case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor";
3485       case BlendFactor::eDstColor : return "DstColor";
3486       case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor";
3487       case BlendFactor::eSrcAlpha : return "SrcAlpha";
3488       case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha";
3489       case BlendFactor::eDstAlpha : return "DstAlpha";
3490       case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha";
3491       case BlendFactor::eConstantColor : return "ConstantColor";
3492       case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor";
3493       case BlendFactor::eConstantAlpha : return "ConstantAlpha";
3494       case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha";
3495       case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate";
3496       case BlendFactor::eSrc1Color : return "Src1Color";
3497       case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color";
3498       case BlendFactor::eSrc1Alpha : return "Src1Alpha";
3499       case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha";
3500       default: return "invalid";
3501     }
3502   }
3503 
3504   enum class BlendOp
3505   {
3506     eAdd = VK_BLEND_OP_ADD,
3507     eSubtract = VK_BLEND_OP_SUBTRACT,
3508     eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT,
3509     eMin = VK_BLEND_OP_MIN,
3510     eMax = VK_BLEND_OP_MAX,
3511     eZeroEXT = VK_BLEND_OP_ZERO_EXT,
3512     eSrcEXT = VK_BLEND_OP_SRC_EXT,
3513     eDstEXT = VK_BLEND_OP_DST_EXT,
3514     eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT,
3515     eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT,
3516     eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT,
3517     eDstInEXT = VK_BLEND_OP_DST_IN_EXT,
3518     eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT,
3519     eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT,
3520     eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT,
3521     eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT,
3522     eXorEXT = VK_BLEND_OP_XOR_EXT,
3523     eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT,
3524     eScreenEXT = VK_BLEND_OP_SCREEN_EXT,
3525     eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT,
3526     eDarkenEXT = VK_BLEND_OP_DARKEN_EXT,
3527     eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT,
3528     eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT,
3529     eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT,
3530     eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT,
3531     eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT,
3532     eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT,
3533     eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT,
3534     eInvertEXT = VK_BLEND_OP_INVERT_EXT,
3535     eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT,
3536     eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT,
3537     eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT,
3538     eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT,
3539     eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT,
3540     ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT,
3541     eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT,
3542     eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT,
3543     eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT,
3544     eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT,
3545     eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
3546     ePlusEXT = VK_BLEND_OP_PLUS_EXT,
3547     ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT,
3548     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
3549     ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT,
3550     eMinusEXT = VK_BLEND_OP_MINUS_EXT,
3551     eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT,
3552     eContrastEXT = VK_BLEND_OP_CONTRAST_EXT,
3553     eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT,
3554     eRedEXT = VK_BLEND_OP_RED_EXT,
3555     eGreenEXT = VK_BLEND_OP_GREEN_EXT,
3556     eBlueEXT = VK_BLEND_OP_BLUE_EXT
3557   };
3558 
to_string(BlendOp value)3559   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
3560   {
3561     switch ( value )
3562     {
3563       case BlendOp::eAdd : return "Add";
3564       case BlendOp::eSubtract : return "Subtract";
3565       case BlendOp::eReverseSubtract : return "ReverseSubtract";
3566       case BlendOp::eMin : return "Min";
3567       case BlendOp::eMax : return "Max";
3568       case BlendOp::eZeroEXT : return "ZeroEXT";
3569       case BlendOp::eSrcEXT : return "SrcEXT";
3570       case BlendOp::eDstEXT : return "DstEXT";
3571       case BlendOp::eSrcOverEXT : return "SrcOverEXT";
3572       case BlendOp::eDstOverEXT : return "DstOverEXT";
3573       case BlendOp::eSrcInEXT : return "SrcInEXT";
3574       case BlendOp::eDstInEXT : return "DstInEXT";
3575       case BlendOp::eSrcOutEXT : return "SrcOutEXT";
3576       case BlendOp::eDstOutEXT : return "DstOutEXT";
3577       case BlendOp::eSrcAtopEXT : return "SrcAtopEXT";
3578       case BlendOp::eDstAtopEXT : return "DstAtopEXT";
3579       case BlendOp::eXorEXT : return "XorEXT";
3580       case BlendOp::eMultiplyEXT : return "MultiplyEXT";
3581       case BlendOp::eScreenEXT : return "ScreenEXT";
3582       case BlendOp::eOverlayEXT : return "OverlayEXT";
3583       case BlendOp::eDarkenEXT : return "DarkenEXT";
3584       case BlendOp::eLightenEXT : return "LightenEXT";
3585       case BlendOp::eColordodgeEXT : return "ColordodgeEXT";
3586       case BlendOp::eColorburnEXT : return "ColorburnEXT";
3587       case BlendOp::eHardlightEXT : return "HardlightEXT";
3588       case BlendOp::eSoftlightEXT : return "SoftlightEXT";
3589       case BlendOp::eDifferenceEXT : return "DifferenceEXT";
3590       case BlendOp::eExclusionEXT : return "ExclusionEXT";
3591       case BlendOp::eInvertEXT : return "InvertEXT";
3592       case BlendOp::eInvertRgbEXT : return "InvertRgbEXT";
3593       case BlendOp::eLineardodgeEXT : return "LineardodgeEXT";
3594       case BlendOp::eLinearburnEXT : return "LinearburnEXT";
3595       case BlendOp::eVividlightEXT : return "VividlightEXT";
3596       case BlendOp::eLinearlightEXT : return "LinearlightEXT";
3597       case BlendOp::ePinlightEXT : return "PinlightEXT";
3598       case BlendOp::eHardmixEXT : return "HardmixEXT";
3599       case BlendOp::eHslHueEXT : return "HslHueEXT";
3600       case BlendOp::eHslSaturationEXT : return "HslSaturationEXT";
3601       case BlendOp::eHslColorEXT : return "HslColorEXT";
3602       case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT";
3603       case BlendOp::ePlusEXT : return "PlusEXT";
3604       case BlendOp::ePlusClampedEXT : return "PlusClampedEXT";
3605       case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT";
3606       case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT";
3607       case BlendOp::eMinusEXT : return "MinusEXT";
3608       case BlendOp::eMinusClampedEXT : return "MinusClampedEXT";
3609       case BlendOp::eContrastEXT : return "ContrastEXT";
3610       case BlendOp::eInvertOvgEXT : return "InvertOvgEXT";
3611       case BlendOp::eRedEXT : return "RedEXT";
3612       case BlendOp::eGreenEXT : return "GreenEXT";
3613       case BlendOp::eBlueEXT : return "BlueEXT";
3614       default: return "invalid";
3615     }
3616   }
3617 
3618   enum class BlendOverlapEXT
3619   {
3620     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
3621     eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT,
3622     eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT
3623   };
3624 
to_string(BlendOverlapEXT value)3625   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
3626   {
3627     switch ( value )
3628     {
3629       case BlendOverlapEXT::eUncorrelated : return "Uncorrelated";
3630       case BlendOverlapEXT::eDisjoint : return "Disjoint";
3631       case BlendOverlapEXT::eConjoint : return "Conjoint";
3632       default: return "invalid";
3633     }
3634   }
3635 
3636   enum class BorderColor
3637   {
3638     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
3639     eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
3640     eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
3641     eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
3642     eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
3643     eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
3644     eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
3645     eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT
3646   };
3647 
to_string(BorderColor value)3648   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
3649   {
3650     switch ( value )
3651     {
3652       case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack";
3653       case BorderColor::eIntTransparentBlack : return "IntTransparentBlack";
3654       case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack";
3655       case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack";
3656       case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite";
3657       case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite";
3658       case BorderColor::eFloatCustomEXT : return "FloatCustomEXT";
3659       case BorderColor::eIntCustomEXT : return "IntCustomEXT";
3660       default: return "invalid";
3661     }
3662   }
3663 
3664   enum class BufferCreateFlagBits : VkBufferCreateFlags
3665   {
3666     eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
3667     eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
3668     eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
3669     eProtected = VK_BUFFER_CREATE_PROTECTED_BIT,
3670     eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3671     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
3672     eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
3673   };
3674 
to_string(BufferCreateFlagBits value)3675   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
3676   {
3677     switch ( value )
3678     {
3679       case BufferCreateFlagBits::eSparseBinding : return "SparseBinding";
3680       case BufferCreateFlagBits::eSparseResidency : return "SparseResidency";
3681       case BufferCreateFlagBits::eSparseAliased : return "SparseAliased";
3682       case BufferCreateFlagBits::eProtected : return "Protected";
3683       case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
3684       default: return "invalid";
3685     }
3686   }
3687 
3688   enum class BufferUsageFlagBits : VkBufferUsageFlags
3689   {
3690     eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
3691     eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
3692     eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
3693     eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
3694     eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
3695     eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
3696     eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
3697     eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
3698     eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
3699     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3700     eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
3701     eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
3702     eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
3703     eRayTracingKHR = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
3704     eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
3705     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
3706     eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
3707   };
3708 
to_string(BufferUsageFlagBits value)3709   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
3710   {
3711     switch ( value )
3712     {
3713       case BufferUsageFlagBits::eTransferSrc : return "TransferSrc";
3714       case BufferUsageFlagBits::eTransferDst : return "TransferDst";
3715       case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
3716       case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
3717       case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer";
3718       case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer";
3719       case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer";
3720       case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer";
3721       case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer";
3722       case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress";
3723       case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT";
3724       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT";
3725       case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
3726       case BufferUsageFlagBits::eRayTracingKHR : return "RayTracingKHR";
3727       default: return "invalid";
3728     }
3729   }
3730 
3731   enum class BufferViewCreateFlagBits
3732   {};
3733 
to_string(BufferViewCreateFlagBits)3734   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
3735   {
3736     return "(void)";
3737   }
3738 
3739   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
3740   {
3741     eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
3742     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
3743     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
3744     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
3745     eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
3746   };
3747   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
3748 
to_string(BuildAccelerationStructureFlagBitsKHR value)3749   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
3750   {
3751     switch ( value )
3752     {
3753       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate : return "AllowUpdate";
3754       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction : return "AllowCompaction";
3755       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace : return "PreferFastTrace";
3756       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild : return "PreferFastBuild";
3757       case BuildAccelerationStructureFlagBitsKHR::eLowMemory : return "LowMemory";
3758       default: return "invalid";
3759     }
3760   }
3761 
3762   enum class ChromaLocation
3763   {
3764     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
3765     eMidpoint = VK_CHROMA_LOCATION_MIDPOINT
3766   };
3767   using ChromaLocationKHR = ChromaLocation;
3768 
to_string(ChromaLocation value)3769   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
3770   {
3771     switch ( value )
3772     {
3773       case ChromaLocation::eCositedEven : return "CositedEven";
3774       case ChromaLocation::eMidpoint : return "Midpoint";
3775       default: return "invalid";
3776     }
3777   }
3778 
3779   enum class CoarseSampleOrderTypeNV
3780   {
3781     eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
3782     eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
3783     ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
3784     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
3785   };
3786 
to_string(CoarseSampleOrderTypeNV value)3787   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
3788   {
3789     switch ( value )
3790     {
3791       case CoarseSampleOrderTypeNV::eDefault : return "Default";
3792       case CoarseSampleOrderTypeNV::eCustom : return "Custom";
3793       case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor";
3794       case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor";
3795       default: return "invalid";
3796     }
3797   }
3798 
3799   enum class ColorComponentFlagBits : VkColorComponentFlags
3800   {
3801     eR = VK_COLOR_COMPONENT_R_BIT,
3802     eG = VK_COLOR_COMPONENT_G_BIT,
3803     eB = VK_COLOR_COMPONENT_B_BIT,
3804     eA = VK_COLOR_COMPONENT_A_BIT
3805   };
3806 
to_string(ColorComponentFlagBits value)3807   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
3808   {
3809     switch ( value )
3810     {
3811       case ColorComponentFlagBits::eR : return "R";
3812       case ColorComponentFlagBits::eG : return "G";
3813       case ColorComponentFlagBits::eB : return "B";
3814       case ColorComponentFlagBits::eA : return "A";
3815       default: return "invalid";
3816     }
3817   }
3818 
3819   enum class ColorSpaceKHR
3820   {
3821     eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
3822     eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
3823     eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
3824     eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
3825     eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
3826     eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT,
3827     eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
3828     eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
3829     eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT,
3830     eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT,
3831     eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT,
3832     eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
3833     eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
3834     ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT,
3835     eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
3836     eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
3837     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
3838     eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
3839   };
3840 
to_string(ColorSpaceKHR value)3841   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
3842   {
3843     switch ( value )
3844     {
3845       case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear";
3846       case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT";
3847       case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT";
3848       case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT";
3849       case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT";
3850       case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT";
3851       case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT";
3852       case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT";
3853       case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT";
3854       case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT";
3855       case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT";
3856       case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT";
3857       case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT";
3858       case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT";
3859       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT";
3860       case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD";
3861       default: return "invalid";
3862     }
3863   }
3864 
3865   enum class CommandBufferLevel
3866   {
3867     ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
3868     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
3869   };
3870 
to_string(CommandBufferLevel value)3871   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
3872   {
3873     switch ( value )
3874     {
3875       case CommandBufferLevel::ePrimary : return "Primary";
3876       case CommandBufferLevel::eSecondary : return "Secondary";
3877       default: return "invalid";
3878     }
3879   }
3880 
3881   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
3882   {
3883     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
3884   };
3885 
to_string(CommandBufferResetFlagBits value)3886   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
3887   {
3888     switch ( value )
3889     {
3890       case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources";
3891       default: return "invalid";
3892     }
3893   }
3894 
3895   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
3896   {
3897     eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
3898     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
3899     eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
3900   };
3901 
to_string(CommandBufferUsageFlagBits value)3902   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
3903   {
3904     switch ( value )
3905     {
3906       case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit";
3907       case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue";
3908       case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse";
3909       default: return "invalid";
3910     }
3911   }
3912 
3913   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
3914   {
3915     eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
3916     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
3917     eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
3918   };
3919 
to_string(CommandPoolCreateFlagBits value)3920   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
3921   {
3922     switch ( value )
3923     {
3924       case CommandPoolCreateFlagBits::eTransient : return "Transient";
3925       case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer";
3926       case CommandPoolCreateFlagBits::eProtected : return "Protected";
3927       default: return "invalid";
3928     }
3929   }
3930 
3931   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
3932   {
3933     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
3934   };
3935 
to_string(CommandPoolResetFlagBits value)3936   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
3937   {
3938     switch ( value )
3939     {
3940       case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources";
3941       default: return "invalid";
3942     }
3943   }
3944 
3945   enum class CompareOp
3946   {
3947     eNever = VK_COMPARE_OP_NEVER,
3948     eLess = VK_COMPARE_OP_LESS,
3949     eEqual = VK_COMPARE_OP_EQUAL,
3950     eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
3951     eGreater = VK_COMPARE_OP_GREATER,
3952     eNotEqual = VK_COMPARE_OP_NOT_EQUAL,
3953     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
3954     eAlways = VK_COMPARE_OP_ALWAYS
3955   };
3956 
to_string(CompareOp value)3957   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
3958   {
3959     switch ( value )
3960     {
3961       case CompareOp::eNever : return "Never";
3962       case CompareOp::eLess : return "Less";
3963       case CompareOp::eEqual : return "Equal";
3964       case CompareOp::eLessOrEqual : return "LessOrEqual";
3965       case CompareOp::eGreater : return "Greater";
3966       case CompareOp::eNotEqual : return "NotEqual";
3967       case CompareOp::eGreaterOrEqual : return "GreaterOrEqual";
3968       case CompareOp::eAlways : return "Always";
3969       default: return "invalid";
3970     }
3971   }
3972 
3973   enum class ComponentSwizzle
3974   {
3975     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
3976     eZero = VK_COMPONENT_SWIZZLE_ZERO,
3977     eOne = VK_COMPONENT_SWIZZLE_ONE,
3978     eR = VK_COMPONENT_SWIZZLE_R,
3979     eG = VK_COMPONENT_SWIZZLE_G,
3980     eB = VK_COMPONENT_SWIZZLE_B,
3981     eA = VK_COMPONENT_SWIZZLE_A
3982   };
3983 
to_string(ComponentSwizzle value)3984   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
3985   {
3986     switch ( value )
3987     {
3988       case ComponentSwizzle::eIdentity : return "Identity";
3989       case ComponentSwizzle::eZero : return "Zero";
3990       case ComponentSwizzle::eOne : return "One";
3991       case ComponentSwizzle::eR : return "R";
3992       case ComponentSwizzle::eG : return "G";
3993       case ComponentSwizzle::eB : return "B";
3994       case ComponentSwizzle::eA : return "A";
3995       default: return "invalid";
3996     }
3997   }
3998 
3999   enum class ComponentTypeNV
4000   {
4001     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
4002     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
4003     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
4004     eSint8 = VK_COMPONENT_TYPE_SINT8_NV,
4005     eSint16 = VK_COMPONENT_TYPE_SINT16_NV,
4006     eSint32 = VK_COMPONENT_TYPE_SINT32_NV,
4007     eSint64 = VK_COMPONENT_TYPE_SINT64_NV,
4008     eUint8 = VK_COMPONENT_TYPE_UINT8_NV,
4009     eUint16 = VK_COMPONENT_TYPE_UINT16_NV,
4010     eUint32 = VK_COMPONENT_TYPE_UINT32_NV,
4011     eUint64 = VK_COMPONENT_TYPE_UINT64_NV
4012   };
4013 
to_string(ComponentTypeNV value)4014   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
4015   {
4016     switch ( value )
4017     {
4018       case ComponentTypeNV::eFloat16 : return "Float16";
4019       case ComponentTypeNV::eFloat32 : return "Float32";
4020       case ComponentTypeNV::eFloat64 : return "Float64";
4021       case ComponentTypeNV::eSint8 : return "Sint8";
4022       case ComponentTypeNV::eSint16 : return "Sint16";
4023       case ComponentTypeNV::eSint32 : return "Sint32";
4024       case ComponentTypeNV::eSint64 : return "Sint64";
4025       case ComponentTypeNV::eUint8 : return "Uint8";
4026       case ComponentTypeNV::eUint16 : return "Uint16";
4027       case ComponentTypeNV::eUint32 : return "Uint32";
4028       case ComponentTypeNV::eUint64 : return "Uint64";
4029       default: return "invalid";
4030     }
4031   }
4032 
4033   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
4034   {
4035     eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
4036     ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
4037     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
4038     eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
4039   };
4040 
to_string(CompositeAlphaFlagBitsKHR value)4041   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
4042   {
4043     switch ( value )
4044     {
4045       case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque";
4046       case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied";
4047       case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied";
4048       case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit";
4049       default: return "invalid";
4050     }
4051   }
4052 
4053   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
4054   {
4055     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
4056   };
4057 
to_string(ConditionalRenderingFlagBitsEXT value)4058   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
4059   {
4060     switch ( value )
4061     {
4062       case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted";
4063       default: return "invalid";
4064     }
4065   }
4066 
4067   enum class ConservativeRasterizationModeEXT
4068   {
4069     eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
4070     eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
4071     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
4072   };
4073 
to_string(ConservativeRasterizationModeEXT value)4074   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
4075   {
4076     switch ( value )
4077     {
4078       case ConservativeRasterizationModeEXT::eDisabled : return "Disabled";
4079       case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate";
4080       case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate";
4081       default: return "invalid";
4082     }
4083   }
4084 
4085   enum class CopyAccelerationStructureModeKHR
4086   {
4087     eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
4088     eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
4089     eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
4090     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
4091   };
4092   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
4093 
to_string(CopyAccelerationStructureModeKHR value)4094   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
4095   {
4096     switch ( value )
4097     {
4098       case CopyAccelerationStructureModeKHR::eClone : return "Clone";
4099       case CopyAccelerationStructureModeKHR::eCompact : return "Compact";
4100       case CopyAccelerationStructureModeKHR::eSerialize : return "Serialize";
4101       case CopyAccelerationStructureModeKHR::eDeserialize : return "Deserialize";
4102       default: return "invalid";
4103     }
4104   }
4105 
4106   enum class CoverageModulationModeNV
4107   {
4108     eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV,
4109     eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV,
4110     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
4111     eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV
4112   };
4113 
to_string(CoverageModulationModeNV value)4114   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
4115   {
4116     switch ( value )
4117     {
4118       case CoverageModulationModeNV::eNone : return "None";
4119       case CoverageModulationModeNV::eRgb : return "Rgb";
4120       case CoverageModulationModeNV::eAlpha : return "Alpha";
4121       case CoverageModulationModeNV::eRgba : return "Rgba";
4122       default: return "invalid";
4123     }
4124   }
4125 
4126   enum class CoverageReductionModeNV
4127   {
4128     eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
4129     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
4130   };
4131 
to_string(CoverageReductionModeNV value)4132   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
4133   {
4134     switch ( value )
4135     {
4136       case CoverageReductionModeNV::eMerge : return "Merge";
4137       case CoverageReductionModeNV::eTruncate : return "Truncate";
4138       default: return "invalid";
4139     }
4140   }
4141 
4142   enum class CullModeFlagBits : VkCullModeFlags
4143   {
4144     eNone = VK_CULL_MODE_NONE,
4145     eFront = VK_CULL_MODE_FRONT_BIT,
4146     eBack = VK_CULL_MODE_BACK_BIT,
4147     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
4148   };
4149 
to_string(CullModeFlagBits value)4150   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
4151   {
4152     switch ( value )
4153     {
4154       case CullModeFlagBits::eNone : return "None";
4155       case CullModeFlagBits::eFront : return "Front";
4156       case CullModeFlagBits::eBack : return "Back";
4157       case CullModeFlagBits::eFrontAndBack : return "FrontAndBack";
4158       default: return "invalid";
4159     }
4160   }
4161 
4162   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
4163   {
4164     eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
4165     eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT,
4166     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
4167     eError = VK_DEBUG_REPORT_ERROR_BIT_EXT,
4168     eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT
4169   };
4170 
to_string(DebugReportFlagBitsEXT value)4171   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
4172   {
4173     switch ( value )
4174     {
4175       case DebugReportFlagBitsEXT::eInformation : return "Information";
4176       case DebugReportFlagBitsEXT::eWarning : return "Warning";
4177       case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning";
4178       case DebugReportFlagBitsEXT::eError : return "Error";
4179       case DebugReportFlagBitsEXT::eDebug : return "Debug";
4180       default: return "invalid";
4181     }
4182   }
4183 
4184   enum class DebugReportObjectTypeEXT
4185   {
4186     eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4187     eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
4188     ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
4189     eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
4190     eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
4191     eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
4192     eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
4193     eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
4194     eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
4195     eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
4196     eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
4197     eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
4198     eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
4199     eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
4200     eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
4201     eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
4202     ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
4203     ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
4204     eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
4205     ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
4206     eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
4207     eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
4208     eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
4209     eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
4210     eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
4211     eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
4212     eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
4213     eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
4214     eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
4215     eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
4216     eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
4217     eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
4218     eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
4219     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
4220     eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
4221     eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
4222     eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
4223     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
4224     eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
4225     eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
4226   };
4227 
to_string(DebugReportObjectTypeEXT value)4228   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
4229   {
4230     switch ( value )
4231     {
4232       case DebugReportObjectTypeEXT::eUnknown : return "Unknown";
4233       case DebugReportObjectTypeEXT::eInstance : return "Instance";
4234       case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice";
4235       case DebugReportObjectTypeEXT::eDevice : return "Device";
4236       case DebugReportObjectTypeEXT::eQueue : return "Queue";
4237       case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore";
4238       case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer";
4239       case DebugReportObjectTypeEXT::eFence : return "Fence";
4240       case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory";
4241       case DebugReportObjectTypeEXT::eBuffer : return "Buffer";
4242       case DebugReportObjectTypeEXT::eImage : return "Image";
4243       case DebugReportObjectTypeEXT::eEvent : return "Event";
4244       case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool";
4245       case DebugReportObjectTypeEXT::eBufferView : return "BufferView";
4246       case DebugReportObjectTypeEXT::eImageView : return "ImageView";
4247       case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule";
4248       case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache";
4249       case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout";
4250       case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass";
4251       case DebugReportObjectTypeEXT::ePipeline : return "Pipeline";
4252       case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout";
4253       case DebugReportObjectTypeEXT::eSampler : return "Sampler";
4254       case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool";
4255       case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet";
4256       case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer";
4257       case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool";
4258       case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR";
4259       case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR";
4260       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
4261       case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR";
4262       case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR";
4263       case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT";
4264       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
4265       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
4266       case DebugReportObjectTypeEXT::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4267       default: return "invalid";
4268     }
4269   }
4270 
4271   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
4272   {
4273     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
4274     eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
4275     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
4276     eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
4277   };
4278 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)4279   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
4280   {
4281     switch ( value )
4282     {
4283       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose";
4284       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info";
4285       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning";
4286       case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error";
4287       default: return "invalid";
4288     }
4289   }
4290 
4291   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
4292   {
4293     eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
4294     eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
4295     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
4296   };
4297 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)4298   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
4299   {
4300     switch ( value )
4301     {
4302       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General";
4303       case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation";
4304       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance";
4305       default: return "invalid";
4306     }
4307   }
4308 
4309   enum class DependencyFlagBits : VkDependencyFlags
4310   {
4311     eByRegion = VK_DEPENDENCY_BY_REGION_BIT,
4312     eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT,
4313     eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT,
4314     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
4315     eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
4316   };
4317 
to_string(DependencyFlagBits value)4318   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
4319   {
4320     switch ( value )
4321     {
4322       case DependencyFlagBits::eByRegion : return "ByRegion";
4323       case DependencyFlagBits::eDeviceGroup : return "DeviceGroup";
4324       case DependencyFlagBits::eViewLocal : return "ViewLocal";
4325       default: return "invalid";
4326     }
4327   }
4328 
4329   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
4330   {
4331     eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
4332     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
4333     ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
4334     eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
4335   };
4336   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
4337 
to_string(DescriptorBindingFlagBits value)4338   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
4339   {
4340     switch ( value )
4341     {
4342       case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4343       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending";
4344       case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound";
4345       case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount";
4346       default: return "invalid";
4347     }
4348   }
4349 
4350   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
4351   {
4352     eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
4353     eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
4354     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
4355   };
4356 
to_string(DescriptorPoolCreateFlagBits value)4357   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
4358   {
4359     switch ( value )
4360     {
4361       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet";
4362       case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4363       default: return "invalid";
4364     }
4365   }
4366 
4367   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
4368   {
4369     eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
4370     ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
4371     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
4372   };
4373 
to_string(DescriptorSetLayoutCreateFlagBits value)4374   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
4375   {
4376     switch ( value )
4377     {
4378       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool";
4379       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR";
4380       default: return "invalid";
4381     }
4382   }
4383 
4384   enum class DescriptorType
4385   {
4386     eSampler = VK_DESCRIPTOR_TYPE_SAMPLER,
4387     eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
4388     eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
4389     eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
4390     eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
4391     eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
4392     eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
4393     eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
4394     eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
4395     eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
4396     eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
4397     eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
4398     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
4399     eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
4400   };
4401 
to_string(DescriptorType value)4402   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
4403   {
4404     switch ( value )
4405     {
4406       case DescriptorType::eSampler : return "Sampler";
4407       case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler";
4408       case DescriptorType::eSampledImage : return "SampledImage";
4409       case DescriptorType::eStorageImage : return "StorageImage";
4410       case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer";
4411       case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer";
4412       case DescriptorType::eUniformBuffer : return "UniformBuffer";
4413       case DescriptorType::eStorageBuffer : return "StorageBuffer";
4414       case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic";
4415       case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic";
4416       case DescriptorType::eInputAttachment : return "InputAttachment";
4417       case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT";
4418       case DescriptorType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4419       default: return "invalid";
4420     }
4421   }
4422 
4423   enum class DescriptorUpdateTemplateType
4424   {
4425     eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4426     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
4427   };
4428   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4429 
to_string(DescriptorUpdateTemplateType value)4430   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
4431   {
4432     switch ( value )
4433     {
4434       case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet";
4435       case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR";
4436       default: return "invalid";
4437     }
4438   }
4439 
4440   enum class DeviceCreateFlagBits
4441   {};
4442 
to_string(DeviceCreateFlagBits)4443   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
4444   {
4445     return "(void)";
4446   }
4447 
4448   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
4449   {
4450     eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
4451     eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
4452     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
4453   };
4454 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)4455   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
4456   {
4457     switch ( value )
4458     {
4459       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo : return "EnableShaderDebugInfo";
4460       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking : return "EnableResourceTracking";
4461       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints : return "EnableAutomaticCheckpoints";
4462       default: return "invalid";
4463     }
4464   }
4465 
4466   enum class DeviceEventTypeEXT
4467   {
4468     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
4469   };
4470 
to_string(DeviceEventTypeEXT value)4471   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
4472   {
4473     switch ( value )
4474     {
4475       case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug";
4476       default: return "invalid";
4477     }
4478   }
4479 
4480   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
4481   {
4482     eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
4483     eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
4484     eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
4485     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
4486   };
4487 
to_string(DeviceGroupPresentModeFlagBitsKHR value)4488   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
4489   {
4490     switch ( value )
4491     {
4492       case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local";
4493       case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote";
4494       case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum";
4495       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice";
4496       default: return "invalid";
4497     }
4498   }
4499 
4500   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
4501   {
4502     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
4503   };
4504 
to_string(DeviceQueueCreateFlagBits value)4505   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
4506   {
4507     switch ( value )
4508     {
4509       case DeviceQueueCreateFlagBits::eProtected : return "Protected";
4510       default: return "invalid";
4511     }
4512   }
4513 
4514   enum class DiscardRectangleModeEXT
4515   {
4516     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
4517     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
4518   };
4519 
to_string(DiscardRectangleModeEXT value)4520   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
4521   {
4522     switch ( value )
4523     {
4524       case DiscardRectangleModeEXT::eInclusive : return "Inclusive";
4525       case DiscardRectangleModeEXT::eExclusive : return "Exclusive";
4526       default: return "invalid";
4527     }
4528   }
4529 
4530   enum class DisplayEventTypeEXT
4531   {
4532     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
4533   };
4534 
to_string(DisplayEventTypeEXT value)4535   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
4536   {
4537     switch ( value )
4538     {
4539       case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut";
4540       default: return "invalid";
4541     }
4542   }
4543 
4544   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
4545   {
4546     eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
4547     eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
4548     ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
4549     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
4550   };
4551 
to_string(DisplayPlaneAlphaFlagBitsKHR value)4552   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
4553   {
4554     switch ( value )
4555     {
4556       case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque";
4557       case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global";
4558       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel";
4559       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied";
4560       default: return "invalid";
4561     }
4562   }
4563 
4564   enum class DisplayPowerStateEXT
4565   {
4566     eOff = VK_DISPLAY_POWER_STATE_OFF_EXT,
4567     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
4568     eOn = VK_DISPLAY_POWER_STATE_ON_EXT
4569   };
4570 
to_string(DisplayPowerStateEXT value)4571   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
4572   {
4573     switch ( value )
4574     {
4575       case DisplayPowerStateEXT::eOff : return "Off";
4576       case DisplayPowerStateEXT::eSuspend : return "Suspend";
4577       case DisplayPowerStateEXT::eOn : return "On";
4578       default: return "invalid";
4579     }
4580   }
4581 
4582   enum class DriverId
4583   {
4584     eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY,
4585     eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE,
4586     eMesaRadv = VK_DRIVER_ID_MESA_RADV,
4587     eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
4588     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
4589     eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
4590     eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
4591     eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
4592     eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY,
4593     eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
4594     eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY,
4595     eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
4596     eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR
4597   };
4598   using DriverIdKHR = DriverId;
4599 
to_string(DriverId value)4600   VULKAN_HPP_INLINE std::string to_string( DriverId value )
4601   {
4602     switch ( value )
4603     {
4604       case DriverId::eAmdProprietary : return "AmdProprietary";
4605       case DriverId::eAmdOpenSource : return "AmdOpenSource";
4606       case DriverId::eMesaRadv : return "MesaRadv";
4607       case DriverId::eNvidiaProprietary : return "NvidiaProprietary";
4608       case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows";
4609       case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA";
4610       case DriverId::eImaginationProprietary : return "ImaginationProprietary";
4611       case DriverId::eQualcommProprietary : return "QualcommProprietary";
4612       case DriverId::eArmProprietary : return "ArmProprietary";
4613       case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader";
4614       case DriverId::eGgpProprietary : return "GgpProprietary";
4615       case DriverId::eBroadcomProprietary : return "BroadcomProprietary";
4616       default: return "invalid";
4617     }
4618   }
4619 
4620   enum class DynamicState
4621   {
4622     eViewport = VK_DYNAMIC_STATE_VIEWPORT,
4623     eScissor = VK_DYNAMIC_STATE_SCISSOR,
4624     eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH,
4625     eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS,
4626     eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
4627     eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
4628     eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
4629     eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
4630     eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
4631     eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
4632     eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
4633     eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
4634     eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
4635     eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
4636     eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
4637     eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT
4638   };
4639 
to_string(DynamicState value)4640   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
4641   {
4642     switch ( value )
4643     {
4644       case DynamicState::eViewport : return "Viewport";
4645       case DynamicState::eScissor : return "Scissor";
4646       case DynamicState::eLineWidth : return "LineWidth";
4647       case DynamicState::eDepthBias : return "DepthBias";
4648       case DynamicState::eBlendConstants : return "BlendConstants";
4649       case DynamicState::eDepthBounds : return "DepthBounds";
4650       case DynamicState::eStencilCompareMask : return "StencilCompareMask";
4651       case DynamicState::eStencilWriteMask : return "StencilWriteMask";
4652       case DynamicState::eStencilReference : return "StencilReference";
4653       case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV";
4654       case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT";
4655       case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT";
4656       case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV";
4657       case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV";
4658       case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV";
4659       case DynamicState::eLineStippleEXT : return "LineStippleEXT";
4660       default: return "invalid";
4661     }
4662   }
4663 
4664   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
4665   {
4666     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
4667     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
4668   };
4669   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
4670 
to_string(ExternalFenceFeatureFlagBits value)4671   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
4672   {
4673     switch ( value )
4674     {
4675       case ExternalFenceFeatureFlagBits::eExportable : return "Exportable";
4676       case ExternalFenceFeatureFlagBits::eImportable : return "Importable";
4677       default: return "invalid";
4678     }
4679   }
4680 
4681   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
4682   {
4683     eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
4684     eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4685     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4686     eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
4687   };
4688   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
4689 
to_string(ExternalFenceHandleTypeFlagBits value)4690   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
4691   {
4692     switch ( value )
4693     {
4694       case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
4695       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
4696       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
4697       case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd";
4698       default: return "invalid";
4699     }
4700   }
4701 
4702   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
4703   {
4704     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
4705     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
4706     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
4707   };
4708   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
4709 
to_string(ExternalMemoryFeatureFlagBits value)4710   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
4711   {
4712     switch ( value )
4713     {
4714       case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly";
4715       case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable";
4716       case ExternalMemoryFeatureFlagBits::eImportable : return "Importable";
4717       default: return "invalid";
4718     }
4719   }
4720 
4721   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
4722   {
4723     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
4724     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
4725     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
4726   };
4727 
to_string(ExternalMemoryFeatureFlagBitsNV value)4728   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
4729   {
4730     switch ( value )
4731     {
4732       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly";
4733       case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable";
4734       case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable";
4735       default: return "invalid";
4736     }
4737   }
4738 
4739   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
4740   {
4741     eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
4742     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4743     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4744     eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
4745     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
4746     eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
4747     eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
4748     eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
4749     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
4750     eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
4751     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
4752   };
4753   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
4754 
to_string(ExternalMemoryHandleTypeFlagBits value)4755   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
4756   {
4757     switch ( value )
4758     {
4759       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
4760       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
4761       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
4762       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture";
4763       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt";
4764       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap";
4765       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource";
4766       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT";
4767       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID";
4768       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT";
4769       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT";
4770       default: return "invalid";
4771     }
4772   }
4773 
4774   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
4775   {
4776     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
4777     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
4778     eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
4779     eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
4780   };
4781 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)4782   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
4783   {
4784     switch ( value )
4785     {
4786       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32";
4787       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
4788       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image";
4789       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt";
4790       default: return "invalid";
4791     }
4792   }
4793 
4794   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
4795   {
4796     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
4797     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
4798   };
4799   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
4800 
to_string(ExternalSemaphoreFeatureFlagBits value)4801   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
4802   {
4803     switch ( value )
4804     {
4805       case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable";
4806       case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable";
4807       default: return "invalid";
4808     }
4809   }
4810 
4811   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
4812   {
4813     eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
4814     eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4815     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4816     eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
4817     eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
4818   };
4819   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
4820 
to_string(ExternalSemaphoreHandleTypeFlagBits value)4821   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
4822   {
4823     switch ( value )
4824     {
4825       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
4826       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
4827       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
4828       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence";
4829       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd";
4830       default: return "invalid";
4831     }
4832   }
4833 
4834   enum class FenceCreateFlagBits : VkFenceCreateFlags
4835   {
4836     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
4837   };
4838 
to_string(FenceCreateFlagBits value)4839   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
4840   {
4841     switch ( value )
4842     {
4843       case FenceCreateFlagBits::eSignaled : return "Signaled";
4844       default: return "invalid";
4845     }
4846   }
4847 
4848   enum class FenceImportFlagBits : VkFenceImportFlags
4849   {
4850     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
4851   };
4852   using FenceImportFlagBitsKHR = FenceImportFlagBits;
4853 
to_string(FenceImportFlagBits value)4854   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
4855   {
4856     switch ( value )
4857     {
4858       case FenceImportFlagBits::eTemporary : return "Temporary";
4859       default: return "invalid";
4860     }
4861   }
4862 
4863   enum class Filter
4864   {
4865     eNearest = VK_FILTER_NEAREST,
4866     eLinear = VK_FILTER_LINEAR,
4867     eCubicIMG = VK_FILTER_CUBIC_IMG,
4868     eCubicEXT = VK_FILTER_CUBIC_EXT
4869   };
4870 
to_string(Filter value)4871   VULKAN_HPP_INLINE std::string to_string( Filter value )
4872   {
4873     switch ( value )
4874     {
4875       case Filter::eNearest : return "Nearest";
4876       case Filter::eLinear : return "Linear";
4877       case Filter::eCubicIMG : return "CubicIMG";
4878       default: return "invalid";
4879     }
4880   }
4881 
4882   enum class Format
4883   {
4884     eUndefined = VK_FORMAT_UNDEFINED,
4885     eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8,
4886     eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
4887     eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
4888     eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16,
4889     eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16,
4890     eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
4891     eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
4892     eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
4893     eR8Unorm = VK_FORMAT_R8_UNORM,
4894     eR8Snorm = VK_FORMAT_R8_SNORM,
4895     eR8Uscaled = VK_FORMAT_R8_USCALED,
4896     eR8Sscaled = VK_FORMAT_R8_SSCALED,
4897     eR8Uint = VK_FORMAT_R8_UINT,
4898     eR8Sint = VK_FORMAT_R8_SINT,
4899     eR8Srgb = VK_FORMAT_R8_SRGB,
4900     eR8G8Unorm = VK_FORMAT_R8G8_UNORM,
4901     eR8G8Snorm = VK_FORMAT_R8G8_SNORM,
4902     eR8G8Uscaled = VK_FORMAT_R8G8_USCALED,
4903     eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED,
4904     eR8G8Uint = VK_FORMAT_R8G8_UINT,
4905     eR8G8Sint = VK_FORMAT_R8G8_SINT,
4906     eR8G8Srgb = VK_FORMAT_R8G8_SRGB,
4907     eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM,
4908     eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM,
4909     eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED,
4910     eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED,
4911     eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT,
4912     eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT,
4913     eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB,
4914     eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM,
4915     eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM,
4916     eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED,
4917     eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED,
4918     eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT,
4919     eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT,
4920     eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB,
4921     eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM,
4922     eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM,
4923     eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED,
4924     eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED,
4925     eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT,
4926     eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT,
4927     eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB,
4928     eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM,
4929     eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM,
4930     eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED,
4931     eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED,
4932     eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT,
4933     eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT,
4934     eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB,
4935     eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
4936     eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
4937     eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
4938     eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
4939     eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32,
4940     eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32,
4941     eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
4942     eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
4943     eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
4944     eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
4945     eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
4946     eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32,
4947     eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32,
4948     eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
4949     eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
4950     eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
4951     eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
4952     eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32,
4953     eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32,
4954     eR16Unorm = VK_FORMAT_R16_UNORM,
4955     eR16Snorm = VK_FORMAT_R16_SNORM,
4956     eR16Uscaled = VK_FORMAT_R16_USCALED,
4957     eR16Sscaled = VK_FORMAT_R16_SSCALED,
4958     eR16Uint = VK_FORMAT_R16_UINT,
4959     eR16Sint = VK_FORMAT_R16_SINT,
4960     eR16Sfloat = VK_FORMAT_R16_SFLOAT,
4961     eR16G16Unorm = VK_FORMAT_R16G16_UNORM,
4962     eR16G16Snorm = VK_FORMAT_R16G16_SNORM,
4963     eR16G16Uscaled = VK_FORMAT_R16G16_USCALED,
4964     eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED,
4965     eR16G16Uint = VK_FORMAT_R16G16_UINT,
4966     eR16G16Sint = VK_FORMAT_R16G16_SINT,
4967     eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT,
4968     eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM,
4969     eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM,
4970     eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED,
4971     eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED,
4972     eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT,
4973     eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT,
4974     eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT,
4975     eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM,
4976     eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM,
4977     eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED,
4978     eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED,
4979     eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT,
4980     eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT,
4981     eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT,
4982     eR32Uint = VK_FORMAT_R32_UINT,
4983     eR32Sint = VK_FORMAT_R32_SINT,
4984     eR32Sfloat = VK_FORMAT_R32_SFLOAT,
4985     eR32G32Uint = VK_FORMAT_R32G32_UINT,
4986     eR32G32Sint = VK_FORMAT_R32G32_SINT,
4987     eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT,
4988     eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT,
4989     eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT,
4990     eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT,
4991     eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT,
4992     eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT,
4993     eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT,
4994     eR64Uint = VK_FORMAT_R64_UINT,
4995     eR64Sint = VK_FORMAT_R64_SINT,
4996     eR64Sfloat = VK_FORMAT_R64_SFLOAT,
4997     eR64G64Uint = VK_FORMAT_R64G64_UINT,
4998     eR64G64Sint = VK_FORMAT_R64G64_SINT,
4999     eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT,
5000     eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT,
5001     eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT,
5002     eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT,
5003     eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT,
5004     eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT,
5005     eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT,
5006     eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
5007     eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
5008     eD16Unorm = VK_FORMAT_D16_UNORM,
5009     eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32,
5010     eD32Sfloat = VK_FORMAT_D32_SFLOAT,
5011     eS8Uint = VK_FORMAT_S8_UINT,
5012     eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT,
5013     eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT,
5014     eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT,
5015     eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
5016     eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
5017     eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
5018     eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
5019     eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK,
5020     eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK,
5021     eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK,
5022     eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK,
5023     eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK,
5024     eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK,
5025     eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK,
5026     eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK,
5027     eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK,
5028     eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK,
5029     eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK,
5030     eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK,
5031     eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
5032     eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
5033     eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
5034     eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
5035     eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
5036     eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
5037     eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK,
5038     eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK,
5039     eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
5040     eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
5041     eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
5042     eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
5043     eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
5044     eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
5045     eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
5046     eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
5047     eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
5048     eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
5049     eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
5050     eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
5051     eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
5052     eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
5053     eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
5054     eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
5055     eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
5056     eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
5057     eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
5058     eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
5059     eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
5060     eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
5061     eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
5062     eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
5063     eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
5064     eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
5065     eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
5066     eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
5067     eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
5068     eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
5069     eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM,
5070     eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM,
5071     eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
5072     eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
5073     eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
5074     eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
5075     eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
5076     eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16,
5077     eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
5078     eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
5079     eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
5080     eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
5081     eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
5082     eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
5083     eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
5084     eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
5085     eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
5086     eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16,
5087     eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
5088     eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
5089     eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
5090     eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
5091     eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
5092     eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
5093     eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
5094     eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
5095     eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
5096     eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM,
5097     eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM,
5098     eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
5099     eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
5100     eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
5101     eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
5102     eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
5103     ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
5104     ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
5105     ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
5106     ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
5107     ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
5108     ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
5109     ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
5110     ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
5111     eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
5112     eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
5113     eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
5114     eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
5115     eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
5116     eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
5117     eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
5118     eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
5119     eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
5120     eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
5121     eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
5122     eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
5123     eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
5124     eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
5125     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
5126     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
5127     eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
5128     eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
5129     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
5130     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
5131     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
5132     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
5133     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
5134     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
5135     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
5136     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
5137     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
5138     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
5139     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
5140     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
5141     eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
5142     eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
5143     eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
5144     eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
5145     eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
5146     eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
5147     eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
5148     eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
5149     eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
5150     eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
5151     eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
5152     eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
5153     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
5154     eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
5155     eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
5156     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
5157     eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
5158     eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR
5159   };
5160 
to_string(Format value)5161   VULKAN_HPP_INLINE std::string to_string( Format value )
5162   {
5163     switch ( value )
5164     {
5165       case Format::eUndefined : return "Undefined";
5166       case Format::eR4G4UnormPack8 : return "R4G4UnormPack8";
5167       case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16";
5168       case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16";
5169       case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16";
5170       case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16";
5171       case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16";
5172       case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16";
5173       case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16";
5174       case Format::eR8Unorm : return "R8Unorm";
5175       case Format::eR8Snorm : return "R8Snorm";
5176       case Format::eR8Uscaled : return "R8Uscaled";
5177       case Format::eR8Sscaled : return "R8Sscaled";
5178       case Format::eR8Uint : return "R8Uint";
5179       case Format::eR8Sint : return "R8Sint";
5180       case Format::eR8Srgb : return "R8Srgb";
5181       case Format::eR8G8Unorm : return "R8G8Unorm";
5182       case Format::eR8G8Snorm : return "R8G8Snorm";
5183       case Format::eR8G8Uscaled : return "R8G8Uscaled";
5184       case Format::eR8G8Sscaled : return "R8G8Sscaled";
5185       case Format::eR8G8Uint : return "R8G8Uint";
5186       case Format::eR8G8Sint : return "R8G8Sint";
5187       case Format::eR8G8Srgb : return "R8G8Srgb";
5188       case Format::eR8G8B8Unorm : return "R8G8B8Unorm";
5189       case Format::eR8G8B8Snorm : return "R8G8B8Snorm";
5190       case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled";
5191       case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled";
5192       case Format::eR8G8B8Uint : return "R8G8B8Uint";
5193       case Format::eR8G8B8Sint : return "R8G8B8Sint";
5194       case Format::eR8G8B8Srgb : return "R8G8B8Srgb";
5195       case Format::eB8G8R8Unorm : return "B8G8R8Unorm";
5196       case Format::eB8G8R8Snorm : return "B8G8R8Snorm";
5197       case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled";
5198       case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled";
5199       case Format::eB8G8R8Uint : return "B8G8R8Uint";
5200       case Format::eB8G8R8Sint : return "B8G8R8Sint";
5201       case Format::eB8G8R8Srgb : return "B8G8R8Srgb";
5202       case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm";
5203       case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm";
5204       case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled";
5205       case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled";
5206       case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint";
5207       case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint";
5208       case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb";
5209       case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm";
5210       case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm";
5211       case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled";
5212       case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled";
5213       case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint";
5214       case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint";
5215       case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb";
5216       case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32";
5217       case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32";
5218       case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32";
5219       case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32";
5220       case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32";
5221       case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32";
5222       case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32";
5223       case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32";
5224       case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32";
5225       case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32";
5226       case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32";
5227       case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32";
5228       case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32";
5229       case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32";
5230       case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32";
5231       case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32";
5232       case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32";
5233       case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32";
5234       case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32";
5235       case Format::eR16Unorm : return "R16Unorm";
5236       case Format::eR16Snorm : return "R16Snorm";
5237       case Format::eR16Uscaled : return "R16Uscaled";
5238       case Format::eR16Sscaled : return "R16Sscaled";
5239       case Format::eR16Uint : return "R16Uint";
5240       case Format::eR16Sint : return "R16Sint";
5241       case Format::eR16Sfloat : return "R16Sfloat";
5242       case Format::eR16G16Unorm : return "R16G16Unorm";
5243       case Format::eR16G16Snorm : return "R16G16Snorm";
5244       case Format::eR16G16Uscaled : return "R16G16Uscaled";
5245       case Format::eR16G16Sscaled : return "R16G16Sscaled";
5246       case Format::eR16G16Uint : return "R16G16Uint";
5247       case Format::eR16G16Sint : return "R16G16Sint";
5248       case Format::eR16G16Sfloat : return "R16G16Sfloat";
5249       case Format::eR16G16B16Unorm : return "R16G16B16Unorm";
5250       case Format::eR16G16B16Snorm : return "R16G16B16Snorm";
5251       case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled";
5252       case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled";
5253       case Format::eR16G16B16Uint : return "R16G16B16Uint";
5254       case Format::eR16G16B16Sint : return "R16G16B16Sint";
5255       case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat";
5256       case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm";
5257       case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm";
5258       case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled";
5259       case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled";
5260       case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint";
5261       case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint";
5262       case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat";
5263       case Format::eR32Uint : return "R32Uint";
5264       case Format::eR32Sint : return "R32Sint";
5265       case Format::eR32Sfloat : return "R32Sfloat";
5266       case Format::eR32G32Uint : return "R32G32Uint";
5267       case Format::eR32G32Sint : return "R32G32Sint";
5268       case Format::eR32G32Sfloat : return "R32G32Sfloat";
5269       case Format::eR32G32B32Uint : return "R32G32B32Uint";
5270       case Format::eR32G32B32Sint : return "R32G32B32Sint";
5271       case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat";
5272       case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint";
5273       case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint";
5274       case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat";
5275       case Format::eR64Uint : return "R64Uint";
5276       case Format::eR64Sint : return "R64Sint";
5277       case Format::eR64Sfloat : return "R64Sfloat";
5278       case Format::eR64G64Uint : return "R64G64Uint";
5279       case Format::eR64G64Sint : return "R64G64Sint";
5280       case Format::eR64G64Sfloat : return "R64G64Sfloat";
5281       case Format::eR64G64B64Uint : return "R64G64B64Uint";
5282       case Format::eR64G64B64Sint : return "R64G64B64Sint";
5283       case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat";
5284       case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint";
5285       case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint";
5286       case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat";
5287       case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32";
5288       case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32";
5289       case Format::eD16Unorm : return "D16Unorm";
5290       case Format::eX8D24UnormPack32 : return "X8D24UnormPack32";
5291       case Format::eD32Sfloat : return "D32Sfloat";
5292       case Format::eS8Uint : return "S8Uint";
5293       case Format::eD16UnormS8Uint : return "D16UnormS8Uint";
5294       case Format::eD24UnormS8Uint : return "D24UnormS8Uint";
5295       case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint";
5296       case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock";
5297       case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock";
5298       case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock";
5299       case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock";
5300       case Format::eBc2UnormBlock : return "Bc2UnormBlock";
5301       case Format::eBc2SrgbBlock : return "Bc2SrgbBlock";
5302       case Format::eBc3UnormBlock : return "Bc3UnormBlock";
5303       case Format::eBc3SrgbBlock : return "Bc3SrgbBlock";
5304       case Format::eBc4UnormBlock : return "Bc4UnormBlock";
5305       case Format::eBc4SnormBlock : return "Bc4SnormBlock";
5306       case Format::eBc5UnormBlock : return "Bc5UnormBlock";
5307       case Format::eBc5SnormBlock : return "Bc5SnormBlock";
5308       case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock";
5309       case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock";
5310       case Format::eBc7UnormBlock : return "Bc7UnormBlock";
5311       case Format::eBc7SrgbBlock : return "Bc7SrgbBlock";
5312       case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock";
5313       case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock";
5314       case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock";
5315       case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock";
5316       case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock";
5317       case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock";
5318       case Format::eEacR11UnormBlock : return "EacR11UnormBlock";
5319       case Format::eEacR11SnormBlock : return "EacR11SnormBlock";
5320       case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock";
5321       case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock";
5322       case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock";
5323       case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock";
5324       case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock";
5325       case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock";
5326       case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock";
5327       case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock";
5328       case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock";
5329       case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock";
5330       case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock";
5331       case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock";
5332       case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock";
5333       case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock";
5334       case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock";
5335       case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock";
5336       case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock";
5337       case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock";
5338       case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock";
5339       case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock";
5340       case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock";
5341       case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock";
5342       case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock";
5343       case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock";
5344       case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock";
5345       case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock";
5346       case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock";
5347       case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock";
5348       case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock";
5349       case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock";
5350       case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm";
5351       case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm";
5352       case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm";
5353       case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm";
5354       case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm";
5355       case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm";
5356       case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm";
5357       case Format::eR10X6UnormPack16 : return "R10X6UnormPack16";
5358       case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16";
5359       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16";
5360       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
5361       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
5362       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16";
5363       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16";
5364       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16";
5365       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16";
5366       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16";
5367       case Format::eR12X4UnormPack16 : return "R12X4UnormPack16";
5368       case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16";
5369       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16";
5370       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
5371       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
5372       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16";
5373       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16";
5374       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16";
5375       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16";
5376       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16";
5377       case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm";
5378       case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm";
5379       case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm";
5380       case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm";
5381       case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm";
5382       case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm";
5383       case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm";
5384       case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG";
5385       case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG";
5386       case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG";
5387       case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG";
5388       case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG";
5389       case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG";
5390       case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG";
5391       case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG";
5392       case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT";
5393       case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT";
5394       case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT";
5395       case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT";
5396       case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT";
5397       case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT";
5398       case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT";
5399       case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT";
5400       case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT";
5401       case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT";
5402       case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT";
5403       case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT";
5404       case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT";
5405       case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT";
5406       default: return "invalid";
5407     }
5408   }
5409 
5410   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
5411   {
5412     eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
5413     eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
5414     eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
5415     eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
5416     eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
5417     eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
5418     eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
5419     eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
5420     eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
5421     eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
5422     eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
5423     eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT,
5424     eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
5425     eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
5426     eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
5427     eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
5428     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
5429     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
5430     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
5431     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
5432     eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT,
5433     eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
5434     eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
5435     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
5436     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
5437     eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
5438     eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
5439     eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
5440     eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
5441     eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
5442     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
5443     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
5444     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
5445     eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
5446     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
5447     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
5448     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
5449   };
5450 
to_string(FormatFeatureFlagBits value)5451   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
5452   {
5453     switch ( value )
5454     {
5455       case FormatFeatureFlagBits::eSampledImage : return "SampledImage";
5456       case FormatFeatureFlagBits::eStorageImage : return "StorageImage";
5457       case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic";
5458       case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
5459       case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
5460       case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic";
5461       case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer";
5462       case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment";
5463       case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend";
5464       case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
5465       case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc";
5466       case FormatFeatureFlagBits::eBlitDst : return "BlitDst";
5467       case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear";
5468       case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc";
5469       case FormatFeatureFlagBits::eTransferDst : return "TransferDst";
5470       case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples";
5471       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter";
5472       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter";
5473       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit";
5474       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
5475       case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
5476       case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
5477       case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax";
5478       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
5479       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR : return "AccelerationStructureVertexBufferKHR";
5480       case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
5481       default: return "invalid";
5482     }
5483   }
5484 
5485   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
5486   {
5487     eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
5488     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
5489   };
5490 
to_string(FramebufferCreateFlagBits value)5491   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
5492   {
5493     switch ( value )
5494     {
5495       case FramebufferCreateFlagBits::eImageless : return "Imageless";
5496       default: return "invalid";
5497     }
5498   }
5499 
5500   enum class FrontFace
5501   {
5502     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
5503     eClockwise = VK_FRONT_FACE_CLOCKWISE
5504   };
5505 
to_string(FrontFace value)5506   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
5507   {
5508     switch ( value )
5509     {
5510       case FrontFace::eCounterClockwise : return "CounterClockwise";
5511       case FrontFace::eClockwise : return "Clockwise";
5512       default: return "invalid";
5513     }
5514   }
5515 
5516 #ifdef VK_USE_PLATFORM_WIN32_KHR
5517   enum class FullScreenExclusiveEXT
5518   {
5519     eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
5520     eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
5521     eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
5522     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
5523   };
5524 
to_string(FullScreenExclusiveEXT value)5525   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
5526   {
5527     switch ( value )
5528     {
5529       case FullScreenExclusiveEXT::eDefault : return "Default";
5530       case FullScreenExclusiveEXT::eAllowed : return "Allowed";
5531       case FullScreenExclusiveEXT::eDisallowed : return "Disallowed";
5532       case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled";
5533       default: return "invalid";
5534     }
5535   }
5536 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
5537 
5538   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
5539   {
5540     eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR,
5541     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
5542   };
5543   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
5544 
to_string(GeometryFlagBitsKHR value)5545   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
5546   {
5547     switch ( value )
5548     {
5549       case GeometryFlagBitsKHR::eOpaque : return "Opaque";
5550       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation";
5551       default: return "invalid";
5552     }
5553   }
5554 
5555   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
5556   {
5557     eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
5558     eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
5559     eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
5560     eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
5561     eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV
5562   };
5563   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
5564 
to_string(GeometryInstanceFlagBitsKHR value)5565   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
5566   {
5567     switch ( value )
5568     {
5569       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable : return "TriangleFacingCullDisable";
5570       case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise";
5571       case GeometryInstanceFlagBitsKHR::eForceOpaque : return "ForceOpaque";
5572       case GeometryInstanceFlagBitsKHR::eForceNoOpaque : return "ForceNoOpaque";
5573       default: return "invalid";
5574     }
5575   }
5576 
5577   enum class GeometryTypeKHR
5578   {
5579     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
5580     eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR,
5581     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
5582   };
5583   using GeometryTypeNV = GeometryTypeKHR;
5584 
to_string(GeometryTypeKHR value)5585   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
5586   {
5587     switch ( value )
5588     {
5589       case GeometryTypeKHR::eTriangles : return "Triangles";
5590       case GeometryTypeKHR::eAabbs : return "Aabbs";
5591       case GeometryTypeKHR::eInstances : return "Instances";
5592       default: return "invalid";
5593     }
5594   }
5595 
5596   enum class ImageAspectFlagBits : VkImageAspectFlags
5597   {
5598     eColor = VK_IMAGE_ASPECT_COLOR_BIT,
5599     eDepth = VK_IMAGE_ASPECT_DEPTH_BIT,
5600     eStencil = VK_IMAGE_ASPECT_STENCIL_BIT,
5601     eMetadata = VK_IMAGE_ASPECT_METADATA_BIT,
5602     ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT,
5603     ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT,
5604     ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT,
5605     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
5606     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
5607     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
5608     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
5609     ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
5610     ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
5611     ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
5612   };
5613 
to_string(ImageAspectFlagBits value)5614   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
5615   {
5616     switch ( value )
5617     {
5618       case ImageAspectFlagBits::eColor : return "Color";
5619       case ImageAspectFlagBits::eDepth : return "Depth";
5620       case ImageAspectFlagBits::eStencil : return "Stencil";
5621       case ImageAspectFlagBits::eMetadata : return "Metadata";
5622       case ImageAspectFlagBits::ePlane0 : return "Plane0";
5623       case ImageAspectFlagBits::ePlane1 : return "Plane1";
5624       case ImageAspectFlagBits::ePlane2 : return "Plane2";
5625       case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT";
5626       case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT";
5627       case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT";
5628       case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT";
5629       default: return "invalid";
5630     }
5631   }
5632 
5633   enum class ImageCreateFlagBits : VkImageCreateFlags
5634   {
5635     eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
5636     eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
5637     eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
5638     eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
5639     eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
5640     eAlias = VK_IMAGE_CREATE_ALIAS_BIT,
5641     eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
5642     e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
5643     eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
5644     eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
5645     eProtected = VK_IMAGE_CREATE_PROTECTED_BIT,
5646     eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT,
5647     eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
5648     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
5649     eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
5650     e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
5651     eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
5652     eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
5653     eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
5654     eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
5655     eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
5656   };
5657 
to_string(ImageCreateFlagBits value)5658   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
5659   {
5660     switch ( value )
5661     {
5662       case ImageCreateFlagBits::eSparseBinding : return "SparseBinding";
5663       case ImageCreateFlagBits::eSparseResidency : return "SparseResidency";
5664       case ImageCreateFlagBits::eSparseAliased : return "SparseAliased";
5665       case ImageCreateFlagBits::eMutableFormat : return "MutableFormat";
5666       case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible";
5667       case ImageCreateFlagBits::eAlias : return "Alias";
5668       case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
5669       case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible";
5670       case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible";
5671       case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage";
5672       case ImageCreateFlagBits::eProtected : return "Protected";
5673       case ImageCreateFlagBits::eDisjoint : return "Disjoint";
5674       case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV";
5675       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT";
5676       case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
5677       default: return "invalid";
5678     }
5679   }
5680 
5681   enum class ImageLayout
5682   {
5683     eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
5684     eGeneral = VK_IMAGE_LAYOUT_GENERAL,
5685     eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
5686     eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
5687     eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
5688     eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
5689     eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
5690     eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
5691     ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED,
5692     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
5693     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
5694     eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
5695     eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
5696     eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
5697     eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
5698     ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
5699     eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
5700     eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
5701     eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
5702     eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
5703     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
5704     eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
5705     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
5706     eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
5707     eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
5708   };
5709 
to_string(ImageLayout value)5710   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
5711   {
5712     switch ( value )
5713     {
5714       case ImageLayout::eUndefined : return "Undefined";
5715       case ImageLayout::eGeneral : return "General";
5716       case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal";
5717       case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal";
5718       case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal";
5719       case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal";
5720       case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal";
5721       case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal";
5722       case ImageLayout::ePreinitialized : return "Preinitialized";
5723       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal";
5724       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal";
5725       case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal";
5726       case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal";
5727       case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal";
5728       case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal";
5729       case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR";
5730       case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR";
5731       case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV";
5732       case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT";
5733       default: return "invalid";
5734     }
5735   }
5736 
5737   enum class ImageTiling
5738   {
5739     eOptimal = VK_IMAGE_TILING_OPTIMAL,
5740     eLinear = VK_IMAGE_TILING_LINEAR,
5741     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
5742   };
5743 
to_string(ImageTiling value)5744   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
5745   {
5746     switch ( value )
5747     {
5748       case ImageTiling::eOptimal : return "Optimal";
5749       case ImageTiling::eLinear : return "Linear";
5750       case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT";
5751       default: return "invalid";
5752     }
5753   }
5754 
5755   enum class ImageType
5756   {
5757     e1D = VK_IMAGE_TYPE_1D,
5758     e2D = VK_IMAGE_TYPE_2D,
5759     e3D = VK_IMAGE_TYPE_3D
5760   };
5761 
to_string(ImageType value)5762   VULKAN_HPP_INLINE std::string to_string( ImageType value )
5763   {
5764     switch ( value )
5765     {
5766       case ImageType::e1D : return "1D";
5767       case ImageType::e2D : return "2D";
5768       case ImageType::e3D : return "3D";
5769       default: return "invalid";
5770     }
5771   }
5772 
5773   enum class ImageUsageFlagBits : VkImageUsageFlags
5774   {
5775     eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
5776     eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
5777     eSampled = VK_IMAGE_USAGE_SAMPLED_BIT,
5778     eStorage = VK_IMAGE_USAGE_STORAGE_BIT,
5779     eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
5780     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
5781     eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
5782     eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
5783     eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
5784     eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
5785   };
5786 
to_string(ImageUsageFlagBits value)5787   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
5788   {
5789     switch ( value )
5790     {
5791       case ImageUsageFlagBits::eTransferSrc : return "TransferSrc";
5792       case ImageUsageFlagBits::eTransferDst : return "TransferDst";
5793       case ImageUsageFlagBits::eSampled : return "Sampled";
5794       case ImageUsageFlagBits::eStorage : return "Storage";
5795       case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment";
5796       case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
5797       case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment";
5798       case ImageUsageFlagBits::eInputAttachment : return "InputAttachment";
5799       case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
5800       case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
5801       default: return "invalid";
5802     }
5803   }
5804 
5805   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
5806   {
5807     eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
5808   };
5809 
to_string(ImageViewCreateFlagBits value)5810   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
5811   {
5812     switch ( value )
5813     {
5814       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT";
5815       default: return "invalid";
5816     }
5817   }
5818 
5819   enum class ImageViewType
5820   {
5821     e1D = VK_IMAGE_VIEW_TYPE_1D,
5822     e2D = VK_IMAGE_VIEW_TYPE_2D,
5823     e3D = VK_IMAGE_VIEW_TYPE_3D,
5824     eCube = VK_IMAGE_VIEW_TYPE_CUBE,
5825     e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
5826     e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
5827     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
5828   };
5829 
to_string(ImageViewType value)5830   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
5831   {
5832     switch ( value )
5833     {
5834       case ImageViewType::e1D : return "1D";
5835       case ImageViewType::e2D : return "2D";
5836       case ImageViewType::e3D : return "3D";
5837       case ImageViewType::eCube : return "Cube";
5838       case ImageViewType::e1DArray : return "1DArray";
5839       case ImageViewType::e2DArray : return "2DArray";
5840       case ImageViewType::eCubeArray : return "CubeArray";
5841       default: return "invalid";
5842     }
5843   }
5844 
5845   enum class IndexType
5846   {
5847     eUint16 = VK_INDEX_TYPE_UINT16,
5848     eUint32 = VK_INDEX_TYPE_UINT32,
5849     eNoneKHR = VK_INDEX_TYPE_NONE_KHR,
5850     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
5851     eNoneNV = VK_INDEX_TYPE_NONE_NV
5852   };
5853 
to_string(IndexType value)5854   VULKAN_HPP_INLINE std::string to_string( IndexType value )
5855   {
5856     switch ( value )
5857     {
5858       case IndexType::eUint16 : return "Uint16";
5859       case IndexType::eUint32 : return "Uint32";
5860       case IndexType::eNoneKHR : return "NoneKHR";
5861       case IndexType::eUint8EXT : return "Uint8EXT";
5862       default: return "invalid";
5863     }
5864   }
5865 
5866   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
5867   {
5868     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
5869     eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
5870     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
5871   };
5872 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)5873   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
5874   {
5875     switch ( value )
5876     {
5877       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess : return "ExplicitPreprocess";
5878       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences : return "IndexedSequences";
5879       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences : return "UnorderedSequences";
5880       default: return "invalid";
5881     }
5882   }
5883 
5884   enum class IndirectCommandsTokenTypeNV
5885   {
5886     eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
5887     eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
5888     eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
5889     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
5890     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
5891     eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
5892     eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
5893     eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
5894   };
5895 
to_string(IndirectCommandsTokenTypeNV value)5896   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
5897   {
5898     switch ( value )
5899     {
5900       case IndirectCommandsTokenTypeNV::eShaderGroup : return "ShaderGroup";
5901       case IndirectCommandsTokenTypeNV::eStateFlags : return "StateFlags";
5902       case IndirectCommandsTokenTypeNV::eIndexBuffer : return "IndexBuffer";
5903       case IndirectCommandsTokenTypeNV::eVertexBuffer : return "VertexBuffer";
5904       case IndirectCommandsTokenTypeNV::ePushConstant : return "PushConstant";
5905       case IndirectCommandsTokenTypeNV::eDrawIndexed : return "DrawIndexed";
5906       case IndirectCommandsTokenTypeNV::eDraw : return "Draw";
5907       case IndirectCommandsTokenTypeNV::eDrawTasks : return "DrawTasks";
5908       default: return "invalid";
5909     }
5910   }
5911 
5912   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
5913   {
5914     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
5915   };
5916 
to_string(IndirectStateFlagBitsNV value)5917   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
5918   {
5919     switch ( value )
5920     {
5921       case IndirectStateFlagBitsNV::eFlagFrontface : return "FlagFrontface";
5922       default: return "invalid";
5923     }
5924   }
5925 
5926   enum class InstanceCreateFlagBits
5927   {};
5928 
to_string(InstanceCreateFlagBits)5929   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
5930   {
5931     return "(void)";
5932   }
5933 
5934   enum class InternalAllocationType
5935   {
5936     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
5937   };
5938 
to_string(InternalAllocationType value)5939   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
5940   {
5941     switch ( value )
5942     {
5943       case InternalAllocationType::eExecutable : return "Executable";
5944       default: return "invalid";
5945     }
5946   }
5947 
5948   enum class LineRasterizationModeEXT
5949   {
5950     eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
5951     eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
5952     eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
5953     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
5954   };
5955 
to_string(LineRasterizationModeEXT value)5956   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
5957   {
5958     switch ( value )
5959     {
5960       case LineRasterizationModeEXT::eDefault : return "Default";
5961       case LineRasterizationModeEXT::eRectangular : return "Rectangular";
5962       case LineRasterizationModeEXT::eBresenham : return "Bresenham";
5963       case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth";
5964       default: return "invalid";
5965     }
5966   }
5967 
5968   enum class LogicOp
5969   {
5970     eClear = VK_LOGIC_OP_CLEAR,
5971     eAnd = VK_LOGIC_OP_AND,
5972     eAndReverse = VK_LOGIC_OP_AND_REVERSE,
5973     eCopy = VK_LOGIC_OP_COPY,
5974     eAndInverted = VK_LOGIC_OP_AND_INVERTED,
5975     eNoOp = VK_LOGIC_OP_NO_OP,
5976     eXor = VK_LOGIC_OP_XOR,
5977     eOr = VK_LOGIC_OP_OR,
5978     eNor = VK_LOGIC_OP_NOR,
5979     eEquivalent = VK_LOGIC_OP_EQUIVALENT,
5980     eInvert = VK_LOGIC_OP_INVERT,
5981     eOrReverse = VK_LOGIC_OP_OR_REVERSE,
5982     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
5983     eOrInverted = VK_LOGIC_OP_OR_INVERTED,
5984     eNand = VK_LOGIC_OP_NAND,
5985     eSet = VK_LOGIC_OP_SET
5986   };
5987 
to_string(LogicOp value)5988   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
5989   {
5990     switch ( value )
5991     {
5992       case LogicOp::eClear : return "Clear";
5993       case LogicOp::eAnd : return "And";
5994       case LogicOp::eAndReverse : return "AndReverse";
5995       case LogicOp::eCopy : return "Copy";
5996       case LogicOp::eAndInverted : return "AndInverted";
5997       case LogicOp::eNoOp : return "NoOp";
5998       case LogicOp::eXor : return "Xor";
5999       case LogicOp::eOr : return "Or";
6000       case LogicOp::eNor : return "Nor";
6001       case LogicOp::eEquivalent : return "Equivalent";
6002       case LogicOp::eInvert : return "Invert";
6003       case LogicOp::eOrReverse : return "OrReverse";
6004       case LogicOp::eCopyInverted : return "CopyInverted";
6005       case LogicOp::eOrInverted : return "OrInverted";
6006       case LogicOp::eNand : return "Nand";
6007       case LogicOp::eSet : return "Set";
6008       default: return "invalid";
6009     }
6010   }
6011 
6012   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
6013   {
6014     eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
6015     eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
6016     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
6017   };
6018   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
6019 
to_string(MemoryAllocateFlagBits value)6020   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
6021   {
6022     switch ( value )
6023     {
6024       case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask";
6025       case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress";
6026       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
6027       default: return "invalid";
6028     }
6029   }
6030 
6031   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
6032   {
6033     eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
6034     eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
6035     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
6036   };
6037 
to_string(MemoryHeapFlagBits value)6038   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
6039   {
6040     switch ( value )
6041     {
6042       case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal";
6043       case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance";
6044       default: return "invalid";
6045     }
6046   }
6047 
6048   enum class MemoryOverallocationBehaviorAMD
6049   {
6050     eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
6051     eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
6052     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
6053   };
6054 
to_string(MemoryOverallocationBehaviorAMD value)6055   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
6056   {
6057     switch ( value )
6058     {
6059       case MemoryOverallocationBehaviorAMD::eDefault : return "Default";
6060       case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed";
6061       case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed";
6062       default: return "invalid";
6063     }
6064   }
6065 
6066   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
6067   {
6068     eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
6069     eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
6070     eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
6071     eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
6072     eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
6073     eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT,
6074     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
6075     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
6076   };
6077 
to_string(MemoryPropertyFlagBits value)6078   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
6079   {
6080     switch ( value )
6081     {
6082       case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal";
6083       case MemoryPropertyFlagBits::eHostVisible : return "HostVisible";
6084       case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent";
6085       case MemoryPropertyFlagBits::eHostCached : return "HostCached";
6086       case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated";
6087       case MemoryPropertyFlagBits::eProtected : return "Protected";
6088       case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD";
6089       case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD";
6090       default: return "invalid";
6091     }
6092   }
6093 
6094   enum class ObjectType
6095   {
6096     eUnknown = VK_OBJECT_TYPE_UNKNOWN,
6097     eInstance = VK_OBJECT_TYPE_INSTANCE,
6098     ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
6099     eDevice = VK_OBJECT_TYPE_DEVICE,
6100     eQueue = VK_OBJECT_TYPE_QUEUE,
6101     eSemaphore = VK_OBJECT_TYPE_SEMAPHORE,
6102     eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER,
6103     eFence = VK_OBJECT_TYPE_FENCE,
6104     eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY,
6105     eBuffer = VK_OBJECT_TYPE_BUFFER,
6106     eImage = VK_OBJECT_TYPE_IMAGE,
6107     eEvent = VK_OBJECT_TYPE_EVENT,
6108     eQueryPool = VK_OBJECT_TYPE_QUERY_POOL,
6109     eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW,
6110     eImageView = VK_OBJECT_TYPE_IMAGE_VIEW,
6111     eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE,
6112     ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE,
6113     ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
6114     eRenderPass = VK_OBJECT_TYPE_RENDER_PASS,
6115     ePipeline = VK_OBJECT_TYPE_PIPELINE,
6116     eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
6117     eSampler = VK_OBJECT_TYPE_SAMPLER,
6118     eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
6119     eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET,
6120     eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER,
6121     eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL,
6122     eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
6123     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
6124     eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR,
6125     eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
6126     eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR,
6127     eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
6128     eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
6129     eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
6130     eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
6131     eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
6132     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
6133     eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
6134     eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
6135     ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
6136     eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
6137     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
6138     eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
6139   };
6140 
to_string(ObjectType value)6141   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
6142   {
6143     switch ( value )
6144     {
6145       case ObjectType::eUnknown : return "Unknown";
6146       case ObjectType::eInstance : return "Instance";
6147       case ObjectType::ePhysicalDevice : return "PhysicalDevice";
6148       case ObjectType::eDevice : return "Device";
6149       case ObjectType::eQueue : return "Queue";
6150       case ObjectType::eSemaphore : return "Semaphore";
6151       case ObjectType::eCommandBuffer : return "CommandBuffer";
6152       case ObjectType::eFence : return "Fence";
6153       case ObjectType::eDeviceMemory : return "DeviceMemory";
6154       case ObjectType::eBuffer : return "Buffer";
6155       case ObjectType::eImage : return "Image";
6156       case ObjectType::eEvent : return "Event";
6157       case ObjectType::eQueryPool : return "QueryPool";
6158       case ObjectType::eBufferView : return "BufferView";
6159       case ObjectType::eImageView : return "ImageView";
6160       case ObjectType::eShaderModule : return "ShaderModule";
6161       case ObjectType::ePipelineCache : return "PipelineCache";
6162       case ObjectType::ePipelineLayout : return "PipelineLayout";
6163       case ObjectType::eRenderPass : return "RenderPass";
6164       case ObjectType::ePipeline : return "Pipeline";
6165       case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout";
6166       case ObjectType::eSampler : return "Sampler";
6167       case ObjectType::eDescriptorPool : return "DescriptorPool";
6168       case ObjectType::eDescriptorSet : return "DescriptorSet";
6169       case ObjectType::eFramebuffer : return "Framebuffer";
6170       case ObjectType::eCommandPool : return "CommandPool";
6171       case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
6172       case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
6173       case ObjectType::eSurfaceKHR : return "SurfaceKHR";
6174       case ObjectType::eSwapchainKHR : return "SwapchainKHR";
6175       case ObjectType::eDisplayKHR : return "DisplayKHR";
6176       case ObjectType::eDisplayModeKHR : return "DisplayModeKHR";
6177       case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
6178       case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT";
6179       case ObjectType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
6180       case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT";
6181       case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL";
6182       case ObjectType::eDeferredOperationKHR : return "DeferredOperationKHR";
6183       case ObjectType::eIndirectCommandsLayoutNV : return "IndirectCommandsLayoutNV";
6184       case ObjectType::ePrivateDataSlotEXT : return "PrivateDataSlotEXT";
6185       default: return "invalid";
6186     }
6187   }
6188 
6189   template<ObjectType value>
6190   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type
6191   {};
6192 
6193   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
6194   {
6195     eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
6196     eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
6197     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
6198     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
6199   };
6200   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
6201 
to_string(PeerMemoryFeatureFlagBits value)6202   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
6203   {
6204     switch ( value )
6205     {
6206       case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc";
6207       case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst";
6208       case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc";
6209       case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst";
6210       default: return "invalid";
6211     }
6212   }
6213 
6214   enum class PerformanceConfigurationTypeINTEL
6215   {
6216     eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
6217   };
6218 
to_string(PerformanceConfigurationTypeINTEL value)6219   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
6220   {
6221     switch ( value )
6222     {
6223       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated";
6224       default: return "invalid";
6225     }
6226   }
6227 
6228   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
6229   {
6230     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,
6231     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR
6232   };
6233 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)6234   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
6235   {
6236     switch ( value )
6237     {
6238       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting";
6239       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted";
6240       default: return "invalid";
6241     }
6242   }
6243 
6244   enum class PerformanceCounterScopeKHR
6245   {
6246     eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
6247     eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
6248     eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
6249     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6250     eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR,
6251     eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR
6252   };
6253 
to_string(PerformanceCounterScopeKHR value)6254   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
6255   {
6256     switch ( value )
6257     {
6258       case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer";
6259       case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass";
6260       case PerformanceCounterScopeKHR::eCommand : return "Command";
6261       default: return "invalid";
6262     }
6263   }
6264 
6265   enum class PerformanceCounterStorageKHR
6266   {
6267     eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6268     eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
6269     eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
6270     eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
6271     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
6272     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
6273   };
6274 
to_string(PerformanceCounterStorageKHR value)6275   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
6276   {
6277     switch ( value )
6278     {
6279       case PerformanceCounterStorageKHR::eInt32 : return "Int32";
6280       case PerformanceCounterStorageKHR::eInt64 : return "Int64";
6281       case PerformanceCounterStorageKHR::eUint32 : return "Uint32";
6282       case PerformanceCounterStorageKHR::eUint64 : return "Uint64";
6283       case PerformanceCounterStorageKHR::eFloat32 : return "Float32";
6284       case PerformanceCounterStorageKHR::eFloat64 : return "Float64";
6285       default: return "invalid";
6286     }
6287   }
6288 
6289   enum class PerformanceCounterUnitKHR
6290   {
6291     eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6292     ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
6293     eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
6294     eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
6295     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
6296     eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
6297     eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
6298     eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
6299     eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
6300     eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
6301     eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
6302   };
6303 
to_string(PerformanceCounterUnitKHR value)6304   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
6305   {
6306     switch ( value )
6307     {
6308       case PerformanceCounterUnitKHR::eGeneric : return "Generic";
6309       case PerformanceCounterUnitKHR::ePercentage : return "Percentage";
6310       case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds";
6311       case PerformanceCounterUnitKHR::eBytes : return "Bytes";
6312       case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond";
6313       case PerformanceCounterUnitKHR::eKelvin : return "Kelvin";
6314       case PerformanceCounterUnitKHR::eWatts : return "Watts";
6315       case PerformanceCounterUnitKHR::eVolts : return "Volts";
6316       case PerformanceCounterUnitKHR::eAmps : return "Amps";
6317       case PerformanceCounterUnitKHR::eHertz : return "Hertz";
6318       case PerformanceCounterUnitKHR::eCycles : return "Cycles";
6319       default: return "invalid";
6320     }
6321   }
6322 
6323   enum class PerformanceOverrideTypeINTEL
6324   {
6325     eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
6326     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
6327   };
6328 
to_string(PerformanceOverrideTypeINTEL value)6329   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
6330   {
6331     switch ( value )
6332     {
6333       case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware";
6334       case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches";
6335       default: return "invalid";
6336     }
6337   }
6338 
6339   enum class PerformanceParameterTypeINTEL
6340   {
6341     eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
6342     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
6343   };
6344 
to_string(PerformanceParameterTypeINTEL value)6345   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
6346   {
6347     switch ( value )
6348     {
6349       case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported";
6350       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits";
6351       default: return "invalid";
6352     }
6353   }
6354 
6355   enum class PerformanceValueTypeINTEL
6356   {
6357     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
6358     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
6359     eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
6360     eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
6361     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
6362   };
6363 
to_string(PerformanceValueTypeINTEL value)6364   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
6365   {
6366     switch ( value )
6367     {
6368       case PerformanceValueTypeINTEL::eUint32 : return "Uint32";
6369       case PerformanceValueTypeINTEL::eUint64 : return "Uint64";
6370       case PerformanceValueTypeINTEL::eFloat : return "Float";
6371       case PerformanceValueTypeINTEL::eBool : return "Bool";
6372       case PerformanceValueTypeINTEL::eString : return "String";
6373       default: return "invalid";
6374     }
6375   }
6376 
6377   enum class PhysicalDeviceType
6378   {
6379     eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER,
6380     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
6381     eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
6382     eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
6383     eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU
6384   };
6385 
to_string(PhysicalDeviceType value)6386   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
6387   {
6388     switch ( value )
6389     {
6390       case PhysicalDeviceType::eOther : return "Other";
6391       case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu";
6392       case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu";
6393       case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu";
6394       case PhysicalDeviceType::eCpu : return "Cpu";
6395       default: return "invalid";
6396     }
6397   }
6398 
6399   enum class PipelineBindPoint
6400   {
6401     eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
6402     eCompute = VK_PIPELINE_BIND_POINT_COMPUTE,
6403     eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
6404     eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
6405   };
6406 
to_string(PipelineBindPoint value)6407   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
6408   {
6409     switch ( value )
6410     {
6411       case PipelineBindPoint::eGraphics : return "Graphics";
6412       case PipelineBindPoint::eCompute : return "Compute";
6413       case PipelineBindPoint::eRayTracingKHR : return "RayTracingKHR";
6414       default: return "invalid";
6415     }
6416   }
6417 
6418   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
6419   {
6420     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
6421   };
6422 
to_string(PipelineCacheCreateFlagBits value)6423   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
6424   {
6425     switch ( value )
6426     {
6427       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT : return "ExternallySynchronizedEXT";
6428       default: return "invalid";
6429     }
6430   }
6431 
6432   enum class PipelineCacheHeaderVersion
6433   {
6434     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
6435   };
6436 
to_string(PipelineCacheHeaderVersion value)6437   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
6438   {
6439     switch ( value )
6440     {
6441       case PipelineCacheHeaderVersion::eOne : return "One";
6442       default: return "invalid";
6443     }
6444   }
6445 
6446   enum class PipelineColorBlendStateCreateFlagBits
6447   {};
6448 
to_string(PipelineColorBlendStateCreateFlagBits)6449   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
6450   {
6451     return "(void)";
6452   }
6453 
6454   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
6455   {};
6456 
to_string(PipelineCompilerControlFlagBitsAMD)6457   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
6458   {
6459     return "(void)";
6460   }
6461 
6462   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
6463   {
6464     eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
6465     eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
6466     eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
6467     eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
6468     eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
6469     eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
6470     eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
6471     eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
6472     eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
6473     eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
6474     eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
6475     eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
6476     eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
6477     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
6478     eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
6479     eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
6480     eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
6481     eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
6482     eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
6483     eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
6484   };
6485 
to_string(PipelineCreateFlagBits value)6486   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
6487   {
6488     switch ( value )
6489     {
6490       case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization";
6491       case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives";
6492       case PipelineCreateFlagBits::eDerivative : return "Derivative";
6493       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex";
6494       case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase";
6495       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR : return "RayTracingNoNullAnyHitShadersKHR";
6496       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR : return "RayTracingNoNullClosestHitShadersKHR";
6497       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR : return "RayTracingNoNullMissShadersKHR";
6498       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR : return "RayTracingNoNullIntersectionShadersKHR";
6499       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR : return "RayTracingSkipTrianglesKHR";
6500       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR : return "RayTracingSkipAabbsKHR";
6501       case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV";
6502       case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR";
6503       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR";
6504       case PipelineCreateFlagBits::eIndirectBindableNV : return "IndirectBindableNV";
6505       case PipelineCreateFlagBits::eLibraryKHR : return "LibraryKHR";
6506       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT : return "FailOnPipelineCompileRequiredEXT";
6507       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT : return "EarlyReturnOnFailureEXT";
6508       default: return "invalid";
6509     }
6510   }
6511 
6512   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
6513   {
6514     eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
6515     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
6516     eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
6517   };
6518 
to_string(PipelineCreationFeedbackFlagBitsEXT value)6519   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
6520   {
6521     switch ( value )
6522     {
6523       case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid";
6524       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit";
6525       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration";
6526       default: return "invalid";
6527     }
6528   }
6529 
6530   enum class PipelineDepthStencilStateCreateFlagBits
6531   {};
6532 
to_string(PipelineDepthStencilStateCreateFlagBits)6533   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
6534   {
6535     return "(void)";
6536   }
6537 
6538   enum class PipelineDynamicStateCreateFlagBits
6539   {};
6540 
to_string(PipelineDynamicStateCreateFlagBits)6541   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
6542   {
6543     return "(void)";
6544   }
6545 
6546   enum class PipelineExecutableStatisticFormatKHR
6547   {
6548     eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
6549     eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
6550     eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
6551     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
6552   };
6553 
to_string(PipelineExecutableStatisticFormatKHR value)6554   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
6555   {
6556     switch ( value )
6557     {
6558       case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32";
6559       case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64";
6560       case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64";
6561       case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64";
6562       default: return "invalid";
6563     }
6564   }
6565 
6566   enum class PipelineInputAssemblyStateCreateFlagBits
6567   {};
6568 
to_string(PipelineInputAssemblyStateCreateFlagBits)6569   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
6570   {
6571     return "(void)";
6572   }
6573 
6574   enum class PipelineLayoutCreateFlagBits
6575   {};
6576 
to_string(PipelineLayoutCreateFlagBits)6577   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
6578   {
6579     return "(void)";
6580   }
6581 
6582   enum class PipelineMultisampleStateCreateFlagBits
6583   {};
6584 
to_string(PipelineMultisampleStateCreateFlagBits)6585   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
6586   {
6587     return "(void)";
6588   }
6589 
6590   enum class PipelineRasterizationStateCreateFlagBits
6591   {};
6592 
to_string(PipelineRasterizationStateCreateFlagBits)6593   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
6594   {
6595     return "(void)";
6596   }
6597 
6598   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
6599   {
6600     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
6601     eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
6602   };
6603 
to_string(PipelineShaderStageCreateFlagBits value)6604   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
6605   {
6606     switch ( value )
6607     {
6608       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT";
6609       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT";
6610       default: return "invalid";
6611     }
6612   }
6613 
6614   enum class PipelineStageFlagBits : VkPipelineStageFlags
6615   {
6616     eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
6617     eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
6618     eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
6619     eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
6620     eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
6621     eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
6622     eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
6623     eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
6624     eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
6625     eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
6626     eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
6627     eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
6628     eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT,
6629     eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
6630     eHost = VK_PIPELINE_STAGE_HOST_BIT,
6631     eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
6632     eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
6633     eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
6634     eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
6635     eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
6636     eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
6637     eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
6638     eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
6639     eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
6640     eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
6641     eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
6642     eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
6643     eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV
6644   };
6645 
to_string(PipelineStageFlagBits value)6646   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
6647   {
6648     switch ( value )
6649     {
6650       case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe";
6651       case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect";
6652       case PipelineStageFlagBits::eVertexInput : return "VertexInput";
6653       case PipelineStageFlagBits::eVertexShader : return "VertexShader";
6654       case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader";
6655       case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader";
6656       case PipelineStageFlagBits::eGeometryShader : return "GeometryShader";
6657       case PipelineStageFlagBits::eFragmentShader : return "FragmentShader";
6658       case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests";
6659       case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests";
6660       case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput";
6661       case PipelineStageFlagBits::eComputeShader : return "ComputeShader";
6662       case PipelineStageFlagBits::eTransfer : return "Transfer";
6663       case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe";
6664       case PipelineStageFlagBits::eHost : return "Host";
6665       case PipelineStageFlagBits::eAllGraphics : return "AllGraphics";
6666       case PipelineStageFlagBits::eAllCommands : return "AllCommands";
6667       case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT";
6668       case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
6669       case PipelineStageFlagBits::eRayTracingShaderKHR : return "RayTracingShaderKHR";
6670       case PipelineStageFlagBits::eAccelerationStructureBuildKHR : return "AccelerationStructureBuildKHR";
6671       case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
6672       case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV";
6673       case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV";
6674       case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT";
6675       case PipelineStageFlagBits::eCommandPreprocessNV : return "CommandPreprocessNV";
6676       default: return "invalid";
6677     }
6678   }
6679 
6680   enum class PipelineTessellationStateCreateFlagBits
6681   {};
6682 
to_string(PipelineTessellationStateCreateFlagBits)6683   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
6684   {
6685     return "(void)";
6686   }
6687 
6688   enum class PipelineVertexInputStateCreateFlagBits
6689   {};
6690 
to_string(PipelineVertexInputStateCreateFlagBits)6691   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
6692   {
6693     return "(void)";
6694   }
6695 
6696   enum class PipelineViewportStateCreateFlagBits
6697   {};
6698 
to_string(PipelineViewportStateCreateFlagBits)6699   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
6700   {
6701     return "(void)";
6702   }
6703 
6704   enum class PointClippingBehavior
6705   {
6706     eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
6707     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
6708   };
6709   using PointClippingBehaviorKHR = PointClippingBehavior;
6710 
to_string(PointClippingBehavior value)6711   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
6712   {
6713     switch ( value )
6714     {
6715       case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes";
6716       case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly";
6717       default: return "invalid";
6718     }
6719   }
6720 
6721   enum class PolygonMode
6722   {
6723     eFill = VK_POLYGON_MODE_FILL,
6724     eLine = VK_POLYGON_MODE_LINE,
6725     ePoint = VK_POLYGON_MODE_POINT,
6726     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
6727   };
6728 
to_string(PolygonMode value)6729   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
6730   {
6731     switch ( value )
6732     {
6733       case PolygonMode::eFill : return "Fill";
6734       case PolygonMode::eLine : return "Line";
6735       case PolygonMode::ePoint : return "Point";
6736       case PolygonMode::eFillRectangleNV : return "FillRectangleNV";
6737       default: return "invalid";
6738     }
6739   }
6740 
6741   enum class PresentModeKHR
6742   {
6743     eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
6744     eMailbox = VK_PRESENT_MODE_MAILBOX_KHR,
6745     eFifo = VK_PRESENT_MODE_FIFO_KHR,
6746     eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
6747     eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
6748     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
6749   };
6750 
to_string(PresentModeKHR value)6751   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
6752   {
6753     switch ( value )
6754     {
6755       case PresentModeKHR::eImmediate : return "Immediate";
6756       case PresentModeKHR::eMailbox : return "Mailbox";
6757       case PresentModeKHR::eFifo : return "Fifo";
6758       case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed";
6759       case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh";
6760       case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh";
6761       default: return "invalid";
6762     }
6763   }
6764 
6765   enum class PrimitiveTopology
6766   {
6767     ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
6768     eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
6769     eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
6770     eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
6771     eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
6772     eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
6773     eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
6774     eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
6775     eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
6776     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
6777     ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
6778   };
6779 
to_string(PrimitiveTopology value)6780   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
6781   {
6782     switch ( value )
6783     {
6784       case PrimitiveTopology::ePointList : return "PointList";
6785       case PrimitiveTopology::eLineList : return "LineList";
6786       case PrimitiveTopology::eLineStrip : return "LineStrip";
6787       case PrimitiveTopology::eTriangleList : return "TriangleList";
6788       case PrimitiveTopology::eTriangleStrip : return "TriangleStrip";
6789       case PrimitiveTopology::eTriangleFan : return "TriangleFan";
6790       case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency";
6791       case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency";
6792       case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency";
6793       case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency";
6794       case PrimitiveTopology::ePatchList : return "PatchList";
6795       default: return "invalid";
6796     }
6797   }
6798 
6799   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
6800   {};
6801 
to_string(PrivateDataSlotCreateFlagBitsEXT)6802   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
6803   {
6804     return "(void)";
6805   }
6806 
6807   enum class QueryControlFlagBits : VkQueryControlFlags
6808   {
6809     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
6810   };
6811 
to_string(QueryControlFlagBits value)6812   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
6813   {
6814     switch ( value )
6815     {
6816       case QueryControlFlagBits::ePrecise : return "Precise";
6817       default: return "invalid";
6818     }
6819   }
6820 
6821   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
6822   {
6823     eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
6824     eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
6825     eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
6826     eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
6827     eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
6828     eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
6829     eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
6830     eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
6831     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
6832     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
6833     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
6834   };
6835 
to_string(QueryPipelineStatisticFlagBits value)6836   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
6837   {
6838     switch ( value )
6839     {
6840       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices";
6841       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives";
6842       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations";
6843       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations";
6844       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives";
6845       case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations";
6846       case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives";
6847       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations";
6848       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches";
6849       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations";
6850       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations";
6851       default: return "invalid";
6852     }
6853   }
6854 
6855   enum class QueryPoolCreateFlagBits
6856   {};
6857 
to_string(QueryPoolCreateFlagBits)6858   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
6859   {
6860     return "(void)";
6861   }
6862 
6863   enum class QueryPoolSamplingModeINTEL
6864   {
6865     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
6866   };
6867 
to_string(QueryPoolSamplingModeINTEL value)6868   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
6869   {
6870     switch ( value )
6871     {
6872       case QueryPoolSamplingModeINTEL::eManual : return "Manual";
6873       default: return "invalid";
6874     }
6875   }
6876 
6877   enum class QueryResultFlagBits : VkQueryResultFlags
6878   {
6879     e64 = VK_QUERY_RESULT_64_BIT,
6880     eWait = VK_QUERY_RESULT_WAIT_BIT,
6881     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
6882     ePartial = VK_QUERY_RESULT_PARTIAL_BIT
6883   };
6884 
to_string(QueryResultFlagBits value)6885   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
6886   {
6887     switch ( value )
6888     {
6889       case QueryResultFlagBits::e64 : return "64";
6890       case QueryResultFlagBits::eWait : return "Wait";
6891       case QueryResultFlagBits::eWithAvailability : return "WithAvailability";
6892       case QueryResultFlagBits::ePartial : return "Partial";
6893       default: return "invalid";
6894     }
6895   }
6896 
6897   enum class QueryType
6898   {
6899     eOcclusion = VK_QUERY_TYPE_OCCLUSION,
6900     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
6901     eTimestamp = VK_QUERY_TYPE_TIMESTAMP,
6902     eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
6903     ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
6904     eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
6905     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
6906     ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
6907     eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
6908   };
6909 
to_string(QueryType value)6910   VULKAN_HPP_INLINE std::string to_string( QueryType value )
6911   {
6912     switch ( value )
6913     {
6914       case QueryType::eOcclusion : return "Occlusion";
6915       case QueryType::ePipelineStatistics : return "PipelineStatistics";
6916       case QueryType::eTimestamp : return "Timestamp";
6917       case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT";
6918       case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR";
6919       case QueryType::eAccelerationStructureCompactedSizeKHR : return "AccelerationStructureCompactedSizeKHR";
6920       case QueryType::eAccelerationStructureSerializationSizeKHR : return "AccelerationStructureSerializationSizeKHR";
6921       case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL";
6922       default: return "invalid";
6923     }
6924   }
6925 
6926   enum class QueueFlagBits : VkQueueFlags
6927   {
6928     eGraphics = VK_QUEUE_GRAPHICS_BIT,
6929     eCompute = VK_QUEUE_COMPUTE_BIT,
6930     eTransfer = VK_QUEUE_TRANSFER_BIT,
6931     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
6932     eProtected = VK_QUEUE_PROTECTED_BIT
6933   };
6934 
to_string(QueueFlagBits value)6935   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
6936   {
6937     switch ( value )
6938     {
6939       case QueueFlagBits::eGraphics : return "Graphics";
6940       case QueueFlagBits::eCompute : return "Compute";
6941       case QueueFlagBits::eTransfer : return "Transfer";
6942       case QueueFlagBits::eSparseBinding : return "SparseBinding";
6943       case QueueFlagBits::eProtected : return "Protected";
6944       default: return "invalid";
6945     }
6946   }
6947 
6948   enum class QueueGlobalPriorityEXT
6949   {
6950     eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
6951     eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
6952     eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
6953     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
6954   };
6955 
to_string(QueueGlobalPriorityEXT value)6956   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
6957   {
6958     switch ( value )
6959     {
6960       case QueueGlobalPriorityEXT::eLow : return "Low";
6961       case QueueGlobalPriorityEXT::eMedium : return "Medium";
6962       case QueueGlobalPriorityEXT::eHigh : return "High";
6963       case QueueGlobalPriorityEXT::eRealtime : return "Realtime";
6964       default: return "invalid";
6965     }
6966   }
6967 
6968   enum class RasterizationOrderAMD
6969   {
6970     eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD,
6971     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
6972   };
6973 
to_string(RasterizationOrderAMD value)6974   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
6975   {
6976     switch ( value )
6977     {
6978       case RasterizationOrderAMD::eStrict : return "Strict";
6979       case RasterizationOrderAMD::eRelaxed : return "Relaxed";
6980       default: return "invalid";
6981     }
6982   }
6983 
6984   enum class RayTracingShaderGroupTypeKHR
6985   {
6986     eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
6987     eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
6988     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
6989   };
6990   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
6991 
to_string(RayTracingShaderGroupTypeKHR value)6992   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
6993   {
6994     switch ( value )
6995     {
6996       case RayTracingShaderGroupTypeKHR::eGeneral : return "General";
6997       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup : return "TrianglesHitGroup";
6998       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup : return "ProceduralHitGroup";
6999       default: return "invalid";
7000     }
7001   }
7002 
7003   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
7004   {
7005     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
7006   };
7007 
to_string(RenderPassCreateFlagBits value)7008   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
7009   {
7010     switch ( value )
7011     {
7012       case RenderPassCreateFlagBits::eTransformQCOM : return "TransformQCOM";
7013       default: return "invalid";
7014     }
7015   }
7016 
7017   enum class ResolveModeFlagBits : VkResolveModeFlags
7018   {
7019     eNone = VK_RESOLVE_MODE_NONE,
7020     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
7021     eAverage = VK_RESOLVE_MODE_AVERAGE_BIT,
7022     eMin = VK_RESOLVE_MODE_MIN_BIT,
7023     eMax = VK_RESOLVE_MODE_MAX_BIT
7024   };
7025   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
7026 
to_string(ResolveModeFlagBits value)7027   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
7028   {
7029     switch ( value )
7030     {
7031       case ResolveModeFlagBits::eNone : return "None";
7032       case ResolveModeFlagBits::eSampleZero : return "SampleZero";
7033       case ResolveModeFlagBits::eAverage : return "Average";
7034       case ResolveModeFlagBits::eMin : return "Min";
7035       case ResolveModeFlagBits::eMax : return "Max";
7036       default: return "invalid";
7037     }
7038   }
7039 
7040   enum class Result
7041   {
7042     eSuccess = VK_SUCCESS,
7043     eNotReady = VK_NOT_READY,
7044     eTimeout = VK_TIMEOUT,
7045     eEventSet = VK_EVENT_SET,
7046     eEventReset = VK_EVENT_RESET,
7047     eIncomplete = VK_INCOMPLETE,
7048     eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY,
7049     eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY,
7050     eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED,
7051     eErrorDeviceLost = VK_ERROR_DEVICE_LOST,
7052     eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED,
7053     eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT,
7054     eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT,
7055     eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT,
7056     eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER,
7057     eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS,
7058     eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED,
7059     eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL,
7060     eErrorUnknown = VK_ERROR_UNKNOWN,
7061     eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY,
7062     eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE,
7063     eErrorFragmentation = VK_ERROR_FRAGMENTATION,
7064     eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
7065     eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR,
7066     eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
7067     eSuboptimalKHR = VK_SUBOPTIMAL_KHR,
7068     eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR,
7069     eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
7070     eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT,
7071     eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV,
7072     eErrorIncompatibleVersionKHR = VK_ERROR_INCOMPATIBLE_VERSION_KHR,
7073     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
7074     eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT,
7075     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
7076     eThreadIdleKHR = VK_THREAD_IDLE_KHR,
7077     eThreadDoneKHR = VK_THREAD_DONE_KHR,
7078     eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR,
7079     eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR,
7080     ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
7081     eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT,
7082     eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
7083     eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
7084     eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
7085     eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
7086     eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT
7087   };
7088 
to_string(Result value)7089   VULKAN_HPP_INLINE std::string to_string( Result value )
7090   {
7091     switch ( value )
7092     {
7093       case Result::eSuccess : return "Success";
7094       case Result::eNotReady : return "NotReady";
7095       case Result::eTimeout : return "Timeout";
7096       case Result::eEventSet : return "EventSet";
7097       case Result::eEventReset : return "EventReset";
7098       case Result::eIncomplete : return "Incomplete";
7099       case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory";
7100       case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory";
7101       case Result::eErrorInitializationFailed : return "ErrorInitializationFailed";
7102       case Result::eErrorDeviceLost : return "ErrorDeviceLost";
7103       case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed";
7104       case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent";
7105       case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent";
7106       case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent";
7107       case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver";
7108       case Result::eErrorTooManyObjects : return "ErrorTooManyObjects";
7109       case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported";
7110       case Result::eErrorFragmentedPool : return "ErrorFragmentedPool";
7111       case Result::eErrorUnknown : return "ErrorUnknown";
7112       case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory";
7113       case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle";
7114       case Result::eErrorFragmentation : return "ErrorFragmentation";
7115       case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress";
7116       case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR";
7117       case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR";
7118       case Result::eSuboptimalKHR : return "SuboptimalKHR";
7119       case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR";
7120       case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR";
7121       case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT";
7122       case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV";
7123       case Result::eErrorIncompatibleVersionKHR : return "ErrorIncompatibleVersionKHR";
7124       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
7125       case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT";
7126       case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT";
7127       case Result::eThreadIdleKHR : return "ThreadIdleKHR";
7128       case Result::eThreadDoneKHR : return "ThreadDoneKHR";
7129       case Result::eOperationDeferredKHR : return "OperationDeferredKHR";
7130       case Result::eOperationNotDeferredKHR : return "OperationNotDeferredKHR";
7131       case Result::ePipelineCompileRequiredEXT : return "PipelineCompileRequiredEXT";
7132       default: return "invalid";
7133     }
7134   }
7135 
7136   enum class SampleCountFlagBits : VkSampleCountFlags
7137   {
7138     e1 = VK_SAMPLE_COUNT_1_BIT,
7139     e2 = VK_SAMPLE_COUNT_2_BIT,
7140     e4 = VK_SAMPLE_COUNT_4_BIT,
7141     e8 = VK_SAMPLE_COUNT_8_BIT,
7142     e16 = VK_SAMPLE_COUNT_16_BIT,
7143     e32 = VK_SAMPLE_COUNT_32_BIT,
7144     e64 = VK_SAMPLE_COUNT_64_BIT
7145   };
7146 
to_string(SampleCountFlagBits value)7147   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
7148   {
7149     switch ( value )
7150     {
7151       case SampleCountFlagBits::e1 : return "1";
7152       case SampleCountFlagBits::e2 : return "2";
7153       case SampleCountFlagBits::e4 : return "4";
7154       case SampleCountFlagBits::e8 : return "8";
7155       case SampleCountFlagBits::e16 : return "16";
7156       case SampleCountFlagBits::e32 : return "32";
7157       case SampleCountFlagBits::e64 : return "64";
7158       default: return "invalid";
7159     }
7160   }
7161 
7162   enum class SamplerAddressMode
7163   {
7164     eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
7165     eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
7166     eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
7167     eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
7168     eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
7169     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
7170   };
7171 
to_string(SamplerAddressMode value)7172   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
7173   {
7174     switch ( value )
7175     {
7176       case SamplerAddressMode::eRepeat : return "Repeat";
7177       case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat";
7178       case SamplerAddressMode::eClampToEdge : return "ClampToEdge";
7179       case SamplerAddressMode::eClampToBorder : return "ClampToBorder";
7180       case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge";
7181       default: return "invalid";
7182     }
7183   }
7184 
7185   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
7186   {
7187     eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
7188     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
7189   };
7190 
to_string(SamplerCreateFlagBits value)7191   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
7192   {
7193     switch ( value )
7194     {
7195       case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
7196       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT";
7197       default: return "invalid";
7198     }
7199   }
7200 
7201   enum class SamplerMipmapMode
7202   {
7203     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
7204     eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR
7205   };
7206 
to_string(SamplerMipmapMode value)7207   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
7208   {
7209     switch ( value )
7210     {
7211       case SamplerMipmapMode::eNearest : return "Nearest";
7212       case SamplerMipmapMode::eLinear : return "Linear";
7213       default: return "invalid";
7214     }
7215   }
7216 
7217   enum class SamplerReductionMode
7218   {
7219     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
7220     eMin = VK_SAMPLER_REDUCTION_MODE_MIN,
7221     eMax = VK_SAMPLER_REDUCTION_MODE_MAX
7222   };
7223   using SamplerReductionModeEXT = SamplerReductionMode;
7224 
to_string(SamplerReductionMode value)7225   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
7226   {
7227     switch ( value )
7228     {
7229       case SamplerReductionMode::eWeightedAverage : return "WeightedAverage";
7230       case SamplerReductionMode::eMin : return "Min";
7231       case SamplerReductionMode::eMax : return "Max";
7232       default: return "invalid";
7233     }
7234   }
7235 
7236   enum class SamplerYcbcrModelConversion
7237   {
7238     eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
7239     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
7240     eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
7241     eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
7242     eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
7243   };
7244   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
7245 
to_string(SamplerYcbcrModelConversion value)7246   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
7247   {
7248     switch ( value )
7249     {
7250       case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity";
7251       case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity";
7252       case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709";
7253       case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601";
7254       case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020";
7255       default: return "invalid";
7256     }
7257   }
7258 
7259   enum class SamplerYcbcrRange
7260   {
7261     eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
7262     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
7263   };
7264   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
7265 
to_string(SamplerYcbcrRange value)7266   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
7267   {
7268     switch ( value )
7269     {
7270       case SamplerYcbcrRange::eItuFull : return "ItuFull";
7271       case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow";
7272       default: return "invalid";
7273     }
7274   }
7275 
7276   enum class ScopeNV
7277   {
7278     eDevice = VK_SCOPE_DEVICE_NV,
7279     eWorkgroup = VK_SCOPE_WORKGROUP_NV,
7280     eSubgroup = VK_SCOPE_SUBGROUP_NV,
7281     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
7282   };
7283 
to_string(ScopeNV value)7284   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
7285   {
7286     switch ( value )
7287     {
7288       case ScopeNV::eDevice : return "Device";
7289       case ScopeNV::eWorkgroup : return "Workgroup";
7290       case ScopeNV::eSubgroup : return "Subgroup";
7291       case ScopeNV::eQueueFamily : return "QueueFamily";
7292       default: return "invalid";
7293     }
7294   }
7295 
7296   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
7297   {};
7298 
to_string(SemaphoreCreateFlagBits)7299   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
7300   {
7301     return "(void)";
7302   }
7303 
7304   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
7305   {
7306     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
7307   };
7308   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
7309 
to_string(SemaphoreImportFlagBits value)7310   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
7311   {
7312     switch ( value )
7313     {
7314       case SemaphoreImportFlagBits::eTemporary : return "Temporary";
7315       default: return "invalid";
7316     }
7317   }
7318 
7319   enum class SemaphoreType
7320   {
7321     eBinary = VK_SEMAPHORE_TYPE_BINARY,
7322     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
7323   };
7324   using SemaphoreTypeKHR = SemaphoreType;
7325 
to_string(SemaphoreType value)7326   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
7327   {
7328     switch ( value )
7329     {
7330       case SemaphoreType::eBinary : return "Binary";
7331       case SemaphoreType::eTimeline : return "Timeline";
7332       default: return "invalid";
7333     }
7334   }
7335 
7336   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
7337   {
7338     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
7339   };
7340   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
7341 
to_string(SemaphoreWaitFlagBits value)7342   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
7343   {
7344     switch ( value )
7345     {
7346       case SemaphoreWaitFlagBits::eAny : return "Any";
7347       default: return "invalid";
7348     }
7349   }
7350 
7351   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
7352   {};
7353 
to_string(ShaderCorePropertiesFlagBitsAMD)7354   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
7355   {
7356     return "(void)";
7357   }
7358 
7359   enum class ShaderFloatControlsIndependence
7360   {
7361     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
7362     eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
7363     eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
7364   };
7365   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
7366 
to_string(ShaderFloatControlsIndependence value)7367   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
7368   {
7369     switch ( value )
7370     {
7371       case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly";
7372       case ShaderFloatControlsIndependence::eAll : return "All";
7373       case ShaderFloatControlsIndependence::eNone : return "None";
7374       default: return "invalid";
7375     }
7376   }
7377 
7378   enum class ShaderInfoTypeAMD
7379   {
7380     eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
7381     eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD,
7382     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
7383   };
7384 
to_string(ShaderInfoTypeAMD value)7385   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
7386   {
7387     switch ( value )
7388     {
7389       case ShaderInfoTypeAMD::eStatistics : return "Statistics";
7390       case ShaderInfoTypeAMD::eBinary : return "Binary";
7391       case ShaderInfoTypeAMD::eDisassembly : return "Disassembly";
7392       default: return "invalid";
7393     }
7394   }
7395 
7396   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
7397   {};
7398 
to_string(ShaderModuleCreateFlagBits)7399   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
7400   {
7401     return "(void)";
7402   }
7403 
7404   enum class ShaderStageFlagBits : VkShaderStageFlags
7405   {
7406     eVertex = VK_SHADER_STAGE_VERTEX_BIT,
7407     eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
7408     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
7409     eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT,
7410     eFragment = VK_SHADER_STAGE_FRAGMENT_BIT,
7411     eCompute = VK_SHADER_STAGE_COMPUTE_BIT,
7412     eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS,
7413     eAll = VK_SHADER_STAGE_ALL,
7414     eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
7415     eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
7416     eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
7417     eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR,
7418     eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
7419     eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
7420     eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV,
7421     eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV,
7422     eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
7423     eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV,
7424     eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
7425     eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
7426     eMissNV = VK_SHADER_STAGE_MISS_BIT_NV,
7427     eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV
7428   };
7429 
to_string(ShaderStageFlagBits value)7430   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
7431   {
7432     switch ( value )
7433     {
7434       case ShaderStageFlagBits::eVertex : return "Vertex";
7435       case ShaderStageFlagBits::eTessellationControl : return "TessellationControl";
7436       case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation";
7437       case ShaderStageFlagBits::eGeometry : return "Geometry";
7438       case ShaderStageFlagBits::eFragment : return "Fragment";
7439       case ShaderStageFlagBits::eCompute : return "Compute";
7440       case ShaderStageFlagBits::eAllGraphics : return "AllGraphics";
7441       case ShaderStageFlagBits::eAll : return "All";
7442       case ShaderStageFlagBits::eRaygenKHR : return "RaygenKHR";
7443       case ShaderStageFlagBits::eAnyHitKHR : return "AnyHitKHR";
7444       case ShaderStageFlagBits::eClosestHitKHR : return "ClosestHitKHR";
7445       case ShaderStageFlagBits::eMissKHR : return "MissKHR";
7446       case ShaderStageFlagBits::eIntersectionKHR : return "IntersectionKHR";
7447       case ShaderStageFlagBits::eCallableKHR : return "CallableKHR";
7448       case ShaderStageFlagBits::eTaskNV : return "TaskNV";
7449       case ShaderStageFlagBits::eMeshNV : return "MeshNV";
7450       default: return "invalid";
7451     }
7452   }
7453 
7454   enum class ShadingRatePaletteEntryNV
7455   {
7456     eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
7457     e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
7458     e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
7459     e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
7460     e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
7461     e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
7462     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
7463     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
7464     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
7465     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
7466     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
7467     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
7468   };
7469 
to_string(ShadingRatePaletteEntryNV value)7470   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
7471   {
7472     switch ( value )
7473     {
7474       case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations";
7475       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
7476       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
7477       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
7478       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
7479       case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel";
7480       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
7481       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
7482       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
7483       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
7484       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
7485       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
7486       default: return "invalid";
7487     }
7488   }
7489 
7490   enum class SharingMode
7491   {
7492     eExclusive = VK_SHARING_MODE_EXCLUSIVE,
7493     eConcurrent = VK_SHARING_MODE_CONCURRENT
7494   };
7495 
to_string(SharingMode value)7496   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
7497   {
7498     switch ( value )
7499     {
7500       case SharingMode::eExclusive : return "Exclusive";
7501       case SharingMode::eConcurrent : return "Concurrent";
7502       default: return "invalid";
7503     }
7504   }
7505 
7506   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
7507   {
7508     eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
7509     eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
7510     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
7511   };
7512 
to_string(SparseImageFormatFlagBits value)7513   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
7514   {
7515     switch ( value )
7516     {
7517       case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail";
7518       case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize";
7519       case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize";
7520       default: return "invalid";
7521     }
7522   }
7523 
7524   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
7525   {
7526     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
7527   };
7528 
to_string(SparseMemoryBindFlagBits value)7529   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
7530   {
7531     switch ( value )
7532     {
7533       case SparseMemoryBindFlagBits::eMetadata : return "Metadata";
7534       default: return "invalid";
7535     }
7536   }
7537 
7538   enum class StencilFaceFlagBits : VkStencilFaceFlags
7539   {
7540     eFront = VK_STENCIL_FACE_FRONT_BIT,
7541     eBack = VK_STENCIL_FACE_BACK_BIT,
7542     eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK,
7543     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
7544   };
7545 
to_string(StencilFaceFlagBits value)7546   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
7547   {
7548     switch ( value )
7549     {
7550       case StencilFaceFlagBits::eFront : return "Front";
7551       case StencilFaceFlagBits::eBack : return "Back";
7552       case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack";
7553       default: return "invalid";
7554     }
7555   }
7556 
7557   enum class StencilOp
7558   {
7559     eKeep = VK_STENCIL_OP_KEEP,
7560     eZero = VK_STENCIL_OP_ZERO,
7561     eReplace = VK_STENCIL_OP_REPLACE,
7562     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
7563     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
7564     eInvert = VK_STENCIL_OP_INVERT,
7565     eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP,
7566     eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP
7567   };
7568 
to_string(StencilOp value)7569   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
7570   {
7571     switch ( value )
7572     {
7573       case StencilOp::eKeep : return "Keep";
7574       case StencilOp::eZero : return "Zero";
7575       case StencilOp::eReplace : return "Replace";
7576       case StencilOp::eIncrementAndClamp : return "IncrementAndClamp";
7577       case StencilOp::eDecrementAndClamp : return "DecrementAndClamp";
7578       case StencilOp::eInvert : return "Invert";
7579       case StencilOp::eIncrementAndWrap : return "IncrementAndWrap";
7580       case StencilOp::eDecrementAndWrap : return "DecrementAndWrap";
7581       default: return "invalid";
7582     }
7583   }
7584 
7585   enum class StructureType
7586   {
7587     eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO,
7588     eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
7589     eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
7590     eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
7591     eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO,
7592     eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
7593     eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
7594     eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
7595     eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
7596     eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
7597     eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
7598     eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
7599     eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
7600     eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
7601     eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
7602     eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
7603     eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
7604     ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
7605     ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
7606     ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
7607     ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
7608     ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
7609     ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
7610     ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
7611     ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
7612     ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
7613     ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
7614     ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
7615     eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
7616     eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
7617     ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
7618     eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
7619     eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
7620     eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
7621     eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
7622     eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
7623     eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
7624     eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
7625     eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
7626     eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
7627     eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
7628     eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
7629     eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
7630     eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
7631     eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
7632     eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
7633     eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
7634     eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
7635     eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
7636     ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
7637     eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
7638     eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
7639     ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
7640     eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
7641     eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
7642     eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
7643     eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
7644     eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
7645     eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
7646     eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
7647     eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
7648     eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
7649     ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
7650     eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
7651     eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
7652     eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
7653     eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
7654     eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
7655     eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
7656     ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
7657     ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
7658     eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
7659     eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
7660     ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
7661     eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
7662     ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
7663     eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
7664     ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
7665     ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
7666     eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
7667     eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
7668     ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
7669     eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
7670     ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
7671     ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
7672     ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
7673     eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
7674     ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
7675     ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
7676     eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
7677     eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
7678     eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
7679     eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
7680     eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
7681     ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
7682     eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
7683     eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
7684     ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
7685     eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
7686     ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
7687     eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
7688     ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
7689     eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
7690     eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
7691     eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
7692     ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
7693     eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
7694     eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
7695     eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
7696     ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
7697     eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
7698     ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
7699     eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
7700     ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
7701     ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
7702     ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
7703     ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
7704     ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
7705     eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
7706     eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
7707     eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
7708     eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
7709     eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
7710     eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
7711     eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
7712     eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
7713     ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
7714     ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
7715     ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
7716     ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
7717     ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
7718     eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
7719     ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
7720     ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
7721     eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
7722     eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
7723     ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
7724     eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
7725     ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
7726     eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
7727     ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
7728     eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
7729     ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
7730     ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
7731     eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
7732     eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
7733     eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
7734     ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
7735     ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
7736     ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
7737     eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
7738     eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
7739     ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
7740     ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
7741     ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
7742     eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
7743     eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
7744     eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
7745     eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
7746     ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
7747     eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
7748     eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
7749     eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
7750     eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
7751     eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
7752     ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
7753     eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
7754     eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
7755     eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
7756     eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
7757     eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
7758     eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
7759     eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
7760     eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
7761     eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
7762     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
7763     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
7764     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
7765     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
7766     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
7767     eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
7768     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
7769     eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
7770     eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
7771     eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
7772     eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
7773     eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
7774     eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
7775     ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
7776     ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
7777     ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
7778     eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
7779     eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
7780     eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
7781     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
7782     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
7783     eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
7784     eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
7785     eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
7786     eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
7787     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
7788     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
7789     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
7790     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
7791     eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
7792     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
7793     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
7794     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
7795     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
7796     eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
7797     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
7798     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
7799     eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
7800     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
7801     eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
7802     eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
7803     eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
7804     eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
7805     eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
7806     eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
7807     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
7808     eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
7809     ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
7810     eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
7811     ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
7812     ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
7813     eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
7814     eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
7815     eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
7816     eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
7817     eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
7818     ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
7819     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
7820     ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
7821     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
7822     ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
7823     ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
7824     ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
7825     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
7826     ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
7827     eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
7828     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
7829     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
7830     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
7831     eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
7832     eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
7833     eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
7834     ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
7835     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
7836     eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
7837     ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
7838     eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
7839     ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
7840     ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
7841     ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
7842     eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
7843     eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
7844     eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
7845     eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
7846     eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
7847     eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
7848     eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
7849     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
7850     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
7851     eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
7852     eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
7853     eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
7854     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
7855     eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
7856     eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
7857     eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
7858     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
7859     eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
7860     eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
7861     eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
7862     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
7863     ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
7864     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
7865     eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
7866     eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
7867     eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
7868     ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
7869     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
7870     eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
7871     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
7872     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
7873     ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
7874     ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
7875     eBindAccelerationStructureMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
7876     eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
7877     eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
7878     eAccelerationStructureCreateGeometryTypeInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR,
7879     eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
7880     eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
7881     eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
7882     eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
7883     eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
7884     eAccelerationStructureMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR,
7885     eAccelerationStructureVersionKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR,
7886     eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
7887     eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
7888     eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
7889     ePhysicalDeviceRayTracingFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR,
7890     ePhysicalDeviceRayTracingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR,
7891     eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
7892     eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
7893     eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
7894     eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
7895     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
7896     ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
7897     ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
7898     eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
7899     eDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
7900     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
7901     eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
7902     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
7903     eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
7904     eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
7905     eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
7906     ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
7907     ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
7908     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
7909     ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
7910     eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
7911     eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
7912     eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV,
7913     eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
7914     eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
7915     eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
7916     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
7917     eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
7918     eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
7919     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
7920     ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
7921     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
7922     eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
7923     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
7924     eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
7925     eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
7926     ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
7927     ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
7928     ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
7929     eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
7930     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
7931     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
7932     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
7933     ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
7934     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
7935     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
7936     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
7937     ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
7938     ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
7939     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
7940     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
7941     ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
7942     ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
7943     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
7944     eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
7945     eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
7946     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
7947     eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
7948     eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
7949     ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
7950     ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
7951     ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
7952     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
7953     ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
7954     eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
7955     eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
7956     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
7957     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
7958     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
7959     ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
7960     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
7961     ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
7962     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
7963     ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
7964     ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
7965     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
7966     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
7967     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
7968     eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
7969     eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
7970     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
7971     ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
7972     eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
7973     ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
7974     eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
7975     ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
7976     eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
7977     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
7978     ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
7979     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
7980     eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
7981     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
7982     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
7983     eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
7984     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
7985     eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
7986     eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
7987     ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
7988     ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
7989     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
7990     ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
7991     eDeferredOperationInfoKHR = VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,
7992     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
7993     ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
7994     ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
7995     ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
7996     ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
7997     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
7998     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
7999     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
8000     eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
8001     eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
8002     eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
8003     eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
8004     eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
8005     eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
8006     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
8007     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
8008     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
8009     eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
8010     eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
8011     ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
8012     ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
8013     eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
8014     ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
8015     ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
8016     ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
8017     ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
8018     eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
8019     ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
8020     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
8021     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
8022     eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
8023     eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
8024     eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
8025     eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
8026     eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
8027     eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
8028     eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
8029     eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
8030     eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
8031     eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
8032     eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
8033     eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
8034     eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
8035     eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
8036     eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
8037     eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
8038     eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
8039     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
8040     eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
8041     eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
8042     eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
8043     eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
8044     eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
8045     eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
8046     eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
8047     eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
8048     eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
8049     eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
8050     eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
8051     eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
8052     eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
8053     eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
8054     eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
8055     eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
8056     eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
8057     eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
8058     eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
8059     eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
8060     eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
8061     eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
8062     eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8063     eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8064     eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
8065     eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8066     eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
8067     eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
8068     eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
8069     eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
8070     eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
8071     eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
8072     eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
8073     ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
8074     ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
8075     ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
8076     ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
8077     ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
8078     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
8079     ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
8080     ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
8081     ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
8082     ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
8083     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
8084     ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
8085     ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
8086     ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
8087     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
8088     ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
8089     ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
8090     ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
8091     ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
8092     ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
8093     ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
8094     ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
8095     ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
8096     ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
8097     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
8098     ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
8099     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
8100     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
8101     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
8102     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
8103     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
8104     ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
8105     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
8106     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
8107     ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
8108     ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
8109     ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
8110     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
8111     ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
8112     ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
8113     ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
8114     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
8115     ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
8116     eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
8117     eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
8118     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
8119     eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
8120     eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
8121     eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
8122     eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
8123     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
8124     eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
8125     eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
8126     eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
8127     eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
8128     eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
8129     eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8130     eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
8131     eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
8132     eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
8133     eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
8134     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
8135     eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
8136     eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
8137     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
8138   };
8139 
to_string(StructureType value)8140   VULKAN_HPP_INLINE std::string to_string( StructureType value )
8141   {
8142     switch ( value )
8143     {
8144       case StructureType::eApplicationInfo : return "ApplicationInfo";
8145       case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo";
8146       case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo";
8147       case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo";
8148       case StructureType::eSubmitInfo : return "SubmitInfo";
8149       case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo";
8150       case StructureType::eMappedMemoryRange : return "MappedMemoryRange";
8151       case StructureType::eBindSparseInfo : return "BindSparseInfo";
8152       case StructureType::eFenceCreateInfo : return "FenceCreateInfo";
8153       case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo";
8154       case StructureType::eEventCreateInfo : return "EventCreateInfo";
8155       case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo";
8156       case StructureType::eBufferCreateInfo : return "BufferCreateInfo";
8157       case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo";
8158       case StructureType::eImageCreateInfo : return "ImageCreateInfo";
8159       case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo";
8160       case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo";
8161       case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo";
8162       case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo";
8163       case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo";
8164       case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo";
8165       case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo";
8166       case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo";
8167       case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo";
8168       case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo";
8169       case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo";
8170       case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo";
8171       case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo";
8172       case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo";
8173       case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo";
8174       case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo";
8175       case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo";
8176       case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo";
8177       case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo";
8178       case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo";
8179       case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet";
8180       case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet";
8181       case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo";
8182       case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo";
8183       case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo";
8184       case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo";
8185       case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo";
8186       case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo";
8187       case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo";
8188       case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier";
8189       case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier";
8190       case StructureType::eMemoryBarrier : return "MemoryBarrier";
8191       case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo";
8192       case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo";
8193       case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties";
8194       case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo";
8195       case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo";
8196       case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures";
8197       case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements";
8198       case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo";
8199       case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo";
8200       case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo";
8201       case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo";
8202       case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo";
8203       case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo";
8204       case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo";
8205       case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo";
8206       case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties";
8207       case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo";
8208       case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2";
8209       case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2";
8210       case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2";
8211       case StructureType::eMemoryRequirements2 : return "MemoryRequirements2";
8212       case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2";
8213       case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2";
8214       case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2";
8215       case StructureType::eFormatProperties2 : return "FormatProperties2";
8216       case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2";
8217       case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2";
8218       case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2";
8219       case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2";
8220       case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2";
8221       case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2";
8222       case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties";
8223       case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo";
8224       case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo";
8225       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo";
8226       case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo";
8227       case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures";
8228       case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties";
8229       case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures";
8230       case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo";
8231       case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures";
8232       case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties";
8233       case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2";
8234       case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo";
8235       case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo";
8236       case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo";
8237       case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo";
8238       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures";
8239       case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties";
8240       case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo";
8241       case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo";
8242       case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties";
8243       case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo";
8244       case StructureType::eExternalBufferProperties : return "ExternalBufferProperties";
8245       case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties";
8246       case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo";
8247       case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo";
8248       case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo";
8249       case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo";
8250       case StructureType::eExternalFenceProperties : return "ExternalFenceProperties";
8251       case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo";
8252       case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo";
8253       case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo";
8254       case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties";
8255       case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties";
8256       case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport";
8257       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures";
8258       case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features";
8259       case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties";
8260       case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features";
8261       case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties";
8262       case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo";
8263       case StructureType::eAttachmentDescription2 : return "AttachmentDescription2";
8264       case StructureType::eAttachmentReference2 : return "AttachmentReference2";
8265       case StructureType::eSubpassDescription2 : return "SubpassDescription2";
8266       case StructureType::eSubpassDependency2 : return "SubpassDependency2";
8267       case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2";
8268       case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo";
8269       case StructureType::eSubpassEndInfo : return "SubpassEndInfo";
8270       case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures";
8271       case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties";
8272       case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features";
8273       case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features";
8274       case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties";
8275       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo";
8276       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures";
8277       case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties";
8278       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo";
8279       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport";
8280       case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties";
8281       case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve";
8282       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures";
8283       case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo";
8284       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties";
8285       case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo";
8286       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures";
8287       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures";
8288       case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo";
8289       case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo";
8290       case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo";
8291       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
8292       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
8293       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
8294       case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout";
8295       case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout";
8296       case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures";
8297       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures";
8298       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties";
8299       case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo";
8300       case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo";
8301       case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo";
8302       case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo";
8303       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures";
8304       case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo";
8305       case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo";
8306       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo";
8307       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo";
8308       case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR";
8309       case StructureType::ePresentInfoKHR : return "PresentInfoKHR";
8310       case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR";
8311       case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR";
8312       case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR";
8313       case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR";
8314       case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR";
8315       case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR";
8316       case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR";
8317       case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR";
8318       case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR";
8319       case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR";
8320       case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR";
8321       case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR";
8322       case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR";
8323       case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR";
8324       case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT";
8325       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD";
8326       case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT";
8327       case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT";
8328       case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT";
8329       case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV";
8330       case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV";
8331       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV";
8332       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT";
8333       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT";
8334       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT";
8335       case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX";
8336       case StructureType::eImageViewAddressPropertiesNVX : return "ImageViewAddressPropertiesNVX";
8337       case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD";
8338       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP";
8339       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV";
8340       case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV";
8341       case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV";
8342       case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV";
8343       case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV";
8344       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV";
8345       case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT";
8346       case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN";
8347       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
8348       case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT";
8349       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT";
8350       case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR";
8351       case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR";
8352       case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR";
8353       case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR";
8354       case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR";
8355       case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR";
8356       case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR";
8357       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR";
8358       case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR";
8359       case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR";
8360       case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR";
8361       case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR";
8362       case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR";
8363       case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR";
8364       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR";
8365       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT";
8366       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT";
8367       case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT";
8368       case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR";
8369       case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV";
8370       case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT";
8371       case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT";
8372       case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT";
8373       case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT";
8374       case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT";
8375       case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE";
8376       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
8377       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV";
8378       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT";
8379       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT";
8380       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
8381       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT";
8382       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT";
8383       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT";
8384       case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT";
8385       case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR";
8386       case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR";
8387       case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR";
8388       case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR";
8389       case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR";
8390       case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR";
8391       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR";
8392       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR";
8393       case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR";
8394       case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR";
8395       case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR";
8396       case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR";
8397       case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR";
8398       case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR";
8399       case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR";
8400       case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR";
8401       case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR";
8402       case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR";
8403       case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR";
8404       case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR";
8405       case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR";
8406       case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK";
8407       case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK";
8408       case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT";
8409       case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT";
8410       case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT";
8411       case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT";
8412       case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT";
8413       case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID";
8414       case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID";
8415       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID";
8416       case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID";
8417       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID";
8418       case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID";
8419       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
8420       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
8421       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT";
8422       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
8423       case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT";
8424       case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT";
8425       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT";
8426       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT";
8427       case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT";
8428       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
8429       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
8430       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT";
8431       case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV";
8432       case StructureType::eBindAccelerationStructureMemoryInfoKHR : return "BindAccelerationStructureMemoryInfoKHR";
8433       case StructureType::eWriteDescriptorSetAccelerationStructureKHR : return "WriteDescriptorSetAccelerationStructureKHR";
8434       case StructureType::eAccelerationStructureBuildGeometryInfoKHR : return "AccelerationStructureBuildGeometryInfoKHR";
8435       case StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR : return "AccelerationStructureCreateGeometryTypeInfoKHR";
8436       case StructureType::eAccelerationStructureDeviceAddressInfoKHR : return "AccelerationStructureDeviceAddressInfoKHR";
8437       case StructureType::eAccelerationStructureGeometryAabbsDataKHR : return "AccelerationStructureGeometryAabbsDataKHR";
8438       case StructureType::eAccelerationStructureGeometryInstancesDataKHR : return "AccelerationStructureGeometryInstancesDataKHR";
8439       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR : return "AccelerationStructureGeometryTrianglesDataKHR";
8440       case StructureType::eAccelerationStructureGeometryKHR : return "AccelerationStructureGeometryKHR";
8441       case StructureType::eAccelerationStructureMemoryRequirementsInfoKHR : return "AccelerationStructureMemoryRequirementsInfoKHR";
8442       case StructureType::eAccelerationStructureVersionKHR : return "AccelerationStructureVersionKHR";
8443       case StructureType::eCopyAccelerationStructureInfoKHR : return "CopyAccelerationStructureInfoKHR";
8444       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR : return "CopyAccelerationStructureToMemoryInfoKHR";
8445       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR : return "CopyMemoryToAccelerationStructureInfoKHR";
8446       case StructureType::ePhysicalDeviceRayTracingFeaturesKHR : return "PhysicalDeviceRayTracingFeaturesKHR";
8447       case StructureType::ePhysicalDeviceRayTracingPropertiesKHR : return "PhysicalDeviceRayTracingPropertiesKHR";
8448       case StructureType::eRayTracingPipelineCreateInfoKHR : return "RayTracingPipelineCreateInfoKHR";
8449       case StructureType::eRayTracingShaderGroupCreateInfoKHR : return "RayTracingShaderGroupCreateInfoKHR";
8450       case StructureType::eAccelerationStructureCreateInfoKHR : return "AccelerationStructureCreateInfoKHR";
8451       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR : return "RayTracingPipelineInterfaceCreateInfoKHR";
8452       case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV";
8453       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
8454       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
8455       case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT";
8456       case StructureType::eDrmFormatModifierPropertiesEXT : return "DrmFormatModifierPropertiesEXT";
8457       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
8458       case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT";
8459       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT";
8460       case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT";
8461       case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT";
8462       case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT";
8463       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV";
8464       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV";
8465       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV";
8466       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
8467       case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV";
8468       case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV";
8469       case StructureType::eGeometryNV : return "GeometryNV";
8470       case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV";
8471       case StructureType::eGeometryAabbNV : return "GeometryAabbNV";
8472       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV";
8473       case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV";
8474       case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV";
8475       case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV";
8476       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
8477       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
8478       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT";
8479       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT";
8480       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT";
8481       case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT";
8482       case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT";
8483       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
8484       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR";
8485       case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD";
8486       case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT";
8487       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD";
8488       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD";
8489       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
8490       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT";
8491       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
8492       case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP";
8493       case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT";
8494       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
8495       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV";
8496       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV";
8497       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
8498       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV";
8499       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV";
8500       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV";
8501       case StructureType::eCheckpointDataNV : return "CheckpointDataNV";
8502       case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV";
8503       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
8504       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL : return "QueryPoolPerformanceQueryCreateInfoINTEL";
8505       case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL";
8506       case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL";
8507       case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL";
8508       case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL";
8509       case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL";
8510       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT";
8511       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD";
8512       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD";
8513       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA";
8514       case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT";
8515       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
8516       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
8517       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT";
8518       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
8519       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
8520       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
8521       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD";
8522       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD";
8523       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT";
8524       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT";
8525       case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT";
8526       case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR";
8527       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
8528       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
8529       case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT";
8530       case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT";
8531       case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT";
8532       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV";
8533       case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV";
8534       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV";
8535       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV";
8536       case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV";
8537       case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV";
8538       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
8539       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
8540       case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT";
8541       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT";
8542       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT";
8543       case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT";
8544       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT";
8545       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT";
8546       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT";
8547       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
8548       case StructureType::eDeferredOperationInfoKHR : return "DeferredOperationInfoKHR";
8549       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
8550       case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR";
8551       case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR";
8552       case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR";
8553       case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR";
8554       case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR";
8555       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
8556       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV : return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
8557       case StructureType::eGraphicsShaderGroupCreateInfoNV : return "GraphicsShaderGroupCreateInfoNV";
8558       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV : return "GraphicsPipelineShaderGroupsCreateInfoNV";
8559       case StructureType::eIndirectCommandsLayoutTokenNV : return "IndirectCommandsLayoutTokenNV";
8560       case StructureType::eIndirectCommandsLayoutCreateInfoNV : return "IndirectCommandsLayoutCreateInfoNV";
8561       case StructureType::eGeneratedCommandsInfoNV : return "GeneratedCommandsInfoNV";
8562       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV : return "GeneratedCommandsMemoryRequirementsInfoNV";
8563       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
8564       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
8565       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
8566       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM : return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
8567       case StructureType::eRenderPassTransformBeginInfoQCOM : return "RenderPassTransformBeginInfoQCOM";
8568       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT : return "PhysicalDeviceRobustness2FeaturesEXT";
8569       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT : return "PhysicalDeviceRobustness2PropertiesEXT";
8570       case StructureType::eSamplerCustomBorderColorCreateInfoEXT : return "SamplerCustomBorderColorCreateInfoEXT";
8571       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT : return "PhysicalDeviceCustomBorderColorPropertiesEXT";
8572       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT : return "PhysicalDeviceCustomBorderColorFeaturesEXT";
8573       case StructureType::ePipelineLibraryCreateInfoKHR : return "PipelineLibraryCreateInfoKHR";
8574       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT : return "PhysicalDevicePrivateDataFeaturesEXT";
8575       case StructureType::eDevicePrivateDataCreateInfoEXT : return "DevicePrivateDataCreateInfoEXT";
8576       case StructureType::ePrivateDataSlotCreateInfoEXT : return "PrivateDataSlotCreateInfoEXT";
8577       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT : return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
8578       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV : return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
8579       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV : return "DeviceDiagnosticsConfigCreateInfoNV";
8580       default: return "invalid";
8581     }
8582   }
8583 
8584   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
8585   {
8586     eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT,
8587     eVote = VK_SUBGROUP_FEATURE_VOTE_BIT,
8588     eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
8589     eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT,
8590     eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
8591     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
8592     eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
8593     eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT,
8594     ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
8595   };
8596 
to_string(SubgroupFeatureFlagBits value)8597   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
8598   {
8599     switch ( value )
8600     {
8601       case SubgroupFeatureFlagBits::eBasic : return "Basic";
8602       case SubgroupFeatureFlagBits::eVote : return "Vote";
8603       case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic";
8604       case SubgroupFeatureFlagBits::eBallot : return "Ballot";
8605       case SubgroupFeatureFlagBits::eShuffle : return "Shuffle";
8606       case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative";
8607       case SubgroupFeatureFlagBits::eClustered : return "Clustered";
8608       case SubgroupFeatureFlagBits::eQuad : return "Quad";
8609       case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV";
8610       default: return "invalid";
8611     }
8612   }
8613 
8614   enum class SubpassContents
8615   {
8616     eInline = VK_SUBPASS_CONTENTS_INLINE,
8617     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
8618   };
8619 
to_string(SubpassContents value)8620   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
8621   {
8622     switch ( value )
8623     {
8624       case SubpassContents::eInline : return "Inline";
8625       case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers";
8626       default: return "invalid";
8627     }
8628   }
8629 
8630   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
8631   {
8632     ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
8633     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
8634     eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
8635     eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
8636   };
8637 
to_string(SubpassDescriptionFlagBits value)8638   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
8639   {
8640     switch ( value )
8641     {
8642       case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX";
8643       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX";
8644       case SubpassDescriptionFlagBits::eFragmentRegionQCOM : return "FragmentRegionQCOM";
8645       case SubpassDescriptionFlagBits::eShaderResolveQCOM : return "ShaderResolveQCOM";
8646       default: return "invalid";
8647     }
8648   }
8649 
8650   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
8651   {
8652     eVblank = VK_SURFACE_COUNTER_VBLANK_EXT
8653   };
8654 
to_string(SurfaceCounterFlagBitsEXT value)8655   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
8656   {
8657     switch ( value )
8658     {
8659       case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank";
8660       default: return "invalid";
8661     }
8662   }
8663 
8664   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
8665   {
8666     eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
8667     eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
8668     eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
8669     eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
8670     eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
8671     eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
8672     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
8673     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
8674     eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
8675   };
8676 
to_string(SurfaceTransformFlagBitsKHR value)8677   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
8678   {
8679     switch ( value )
8680     {
8681       case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity";
8682       case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90";
8683       case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180";
8684       case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270";
8685       case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror";
8686       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90";
8687       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180";
8688       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270";
8689       case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit";
8690       default: return "invalid";
8691     }
8692   }
8693 
8694   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
8695   {
8696     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
8697     eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
8698     eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
8699   };
8700 
to_string(SwapchainCreateFlagBitsKHR value)8701   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
8702   {
8703     switch ( value )
8704     {
8705       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
8706       case SwapchainCreateFlagBitsKHR::eProtected : return "Protected";
8707       case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat";
8708       default: return "invalid";
8709     }
8710   }
8711 
8712   enum class SystemAllocationScope
8713   {
8714     eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
8715     eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
8716     eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
8717     eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
8718     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
8719   };
8720 
to_string(SystemAllocationScope value)8721   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
8722   {
8723     switch ( value )
8724     {
8725       case SystemAllocationScope::eCommand : return "Command";
8726       case SystemAllocationScope::eObject : return "Object";
8727       case SystemAllocationScope::eCache : return "Cache";
8728       case SystemAllocationScope::eDevice : return "Device";
8729       case SystemAllocationScope::eInstance : return "Instance";
8730       default: return "invalid";
8731     }
8732   }
8733 
8734   enum class TessellationDomainOrigin
8735   {
8736     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
8737     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
8738   };
8739   using TessellationDomainOriginKHR = TessellationDomainOrigin;
8740 
to_string(TessellationDomainOrigin value)8741   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
8742   {
8743     switch ( value )
8744     {
8745       case TessellationDomainOrigin::eUpperLeft : return "UpperLeft";
8746       case TessellationDomainOrigin::eLowerLeft : return "LowerLeft";
8747       default: return "invalid";
8748     }
8749   }
8750 
8751   enum class TimeDomainEXT
8752   {
8753     eDevice = VK_TIME_DOMAIN_DEVICE_EXT,
8754     eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
8755     eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
8756     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
8757   };
8758 
to_string(TimeDomainEXT value)8759   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
8760   {
8761     switch ( value )
8762     {
8763       case TimeDomainEXT::eDevice : return "Device";
8764       case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic";
8765       case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw";
8766       case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter";
8767       default: return "invalid";
8768     }
8769   }
8770 
8771   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
8772   {
8773     eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
8774     eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
8775     eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT,
8776     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
8777     eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
8778     eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
8779     eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
8780   };
8781 
to_string(ToolPurposeFlagBitsEXT value)8782   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
8783   {
8784     switch ( value )
8785     {
8786       case ToolPurposeFlagBitsEXT::eValidation : return "Validation";
8787       case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling";
8788       case ToolPurposeFlagBitsEXT::eTracing : return "Tracing";
8789       case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures";
8790       case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures";
8791       case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting";
8792       case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers";
8793       default: return "invalid";
8794     }
8795   }
8796 
8797   enum class ValidationCacheHeaderVersionEXT
8798   {
8799     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
8800   };
8801 
to_string(ValidationCacheHeaderVersionEXT value)8802   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
8803   {
8804     switch ( value )
8805     {
8806       case ValidationCacheHeaderVersionEXT::eOne : return "One";
8807       default: return "invalid";
8808     }
8809   }
8810 
8811   enum class ValidationCheckEXT
8812   {
8813     eAll = VK_VALIDATION_CHECK_ALL_EXT,
8814     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
8815   };
8816 
to_string(ValidationCheckEXT value)8817   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
8818   {
8819     switch ( value )
8820     {
8821       case ValidationCheckEXT::eAll : return "All";
8822       case ValidationCheckEXT::eShaders : return "Shaders";
8823       default: return "invalid";
8824     }
8825   }
8826 
8827   enum class ValidationFeatureDisableEXT
8828   {
8829     eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
8830     eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
8831     eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
8832     eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
8833     eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
8834     eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
8835     eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
8836   };
8837 
to_string(ValidationFeatureDisableEXT value)8838   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
8839   {
8840     switch ( value )
8841     {
8842       case ValidationFeatureDisableEXT::eAll : return "All";
8843       case ValidationFeatureDisableEXT::eShaders : return "Shaders";
8844       case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety";
8845       case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters";
8846       case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes";
8847       case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks";
8848       case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles";
8849       default: return "invalid";
8850     }
8851   }
8852 
8853   enum class ValidationFeatureEnableEXT
8854   {
8855     eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
8856     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
8857     eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
8858     eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
8859   };
8860 
to_string(ValidationFeatureEnableEXT value)8861   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
8862   {
8863     switch ( value )
8864     {
8865       case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted";
8866       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot";
8867       case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices";
8868       case ValidationFeatureEnableEXT::eDebugPrintf : return "DebugPrintf";
8869       default: return "invalid";
8870     }
8871   }
8872 
8873   enum class VendorId
8874   {
8875     eVIV = VK_VENDOR_ID_VIV,
8876     eVSI = VK_VENDOR_ID_VSI,
8877     eKazan = VK_VENDOR_ID_KAZAN,
8878     eCodeplay = VK_VENDOR_ID_CODEPLAY
8879   };
8880 
to_string(VendorId value)8881   VULKAN_HPP_INLINE std::string to_string( VendorId value )
8882   {
8883     switch ( value )
8884     {
8885       case VendorId::eVIV : return "VIV";
8886       case VendorId::eVSI : return "VSI";
8887       case VendorId::eKazan : return "Kazan";
8888       case VendorId::eCodeplay : return "Codeplay";
8889       default: return "invalid";
8890     }
8891   }
8892 
8893   enum class VertexInputRate
8894   {
8895     eVertex = VK_VERTEX_INPUT_RATE_VERTEX,
8896     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
8897   };
8898 
to_string(VertexInputRate value)8899   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
8900   {
8901     switch ( value )
8902     {
8903       case VertexInputRate::eVertex : return "Vertex";
8904       case VertexInputRate::eInstance : return "Instance";
8905       default: return "invalid";
8906     }
8907   }
8908 
8909   enum class ViewportCoordinateSwizzleNV
8910   {
8911     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
8912     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
8913     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
8914     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
8915     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
8916     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
8917     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
8918     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
8919   };
8920 
to_string(ViewportCoordinateSwizzleNV value)8921   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
8922   {
8923     switch ( value )
8924     {
8925       case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX";
8926       case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX";
8927       case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY";
8928       case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY";
8929       case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ";
8930       case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ";
8931       case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW";
8932       case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW";
8933       default: return "invalid";
8934     }
8935   }
8936 
8937   template<typename T>
8938   struct IndexTypeValue
8939   {};
8940 
8941   template <>
8942   struct IndexTypeValue<uint16_t>
8943   {
8944     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
8945   };
8946 
8947   template <>
8948   struct CppType<IndexType, IndexType::eUint16>
8949   {
8950     using Type = uint16_t;
8951   };
8952 
8953   template <>
8954   struct IndexTypeValue<uint32_t>
8955   {
8956     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
8957   };
8958 
8959   template <>
8960   struct CppType<IndexType, IndexType::eUint32>
8961   {
8962     using Type = uint32_t;
8963   };
8964 
8965   template <>
8966   struct IndexTypeValue<uint8_t>
8967   {
8968     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
8969   };
8970 
8971   template <>
8972   struct CppType<IndexType, IndexType::eUint8EXT>
8973   {
8974     using Type = uint8_t;
8975   };
8976 
8977 
8978   using AccessFlags = Flags<AccessFlagBits>;
8979 
8980   template <> struct FlagTraits<AccessFlagBits>
8981   {
8982     enum : VkFlags
8983     {
8984       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)
8985     };
8986   };
8987 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)8988   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8989   {
8990     return AccessFlags( bit0 ) | bit1;
8991   }
8992 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)8993   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8994   {
8995     return AccessFlags( bit0 ) & bit1;
8996   }
8997 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)8998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8999   {
9000     return AccessFlags( bit0 ) ^ bit1;
9001   }
9002 
operator ~(AccessFlagBits bits)9003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
9004   {
9005     return ~( AccessFlags( bits ) );
9006   }
9007 
to_string(AccessFlags value)9008   VULKAN_HPP_INLINE std::string to_string( AccessFlags value  )
9009   {
9010 
9011     if ( !value ) return "{}";
9012     std::string result;
9013 
9014     if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | ";
9015     if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | ";
9016     if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | ";
9017     if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | ";
9018     if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | ";
9019     if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | ";
9020     if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | ";
9021     if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | ";
9022     if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | ";
9023     if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | ";
9024     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | ";
9025     if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | ";
9026     if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | ";
9027     if ( value & AccessFlagBits::eHostRead ) result += "HostRead | ";
9028     if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | ";
9029     if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | ";
9030     if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | ";
9031     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | ";
9032     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | ";
9033     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | ";
9034     if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | ";
9035     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | ";
9036     if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) result += "AccelerationStructureReadKHR | ";
9037     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) result += "AccelerationStructureWriteKHR | ";
9038     if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | ";
9039     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | ";
9040     if ( value & AccessFlagBits::eCommandPreprocessReadNV ) result += "CommandPreprocessReadNV | ";
9041     if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) result += "CommandPreprocessWriteNV | ";
9042     return "{ " + result.substr(0, result.size() - 3) + " }";
9043   }
9044 
9045 
9046   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
9047 
to_string(AcquireProfilingLockFlagsKHR)9048   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR  )
9049   {
9050 
9051     return "{}";
9052   }
9053 
9054 #ifdef VK_USE_PLATFORM_ANDROID_KHR
9055   enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags
9056   {};
9057 
to_string(AndroidSurfaceCreateFlagBitsKHR)9058   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
9059   {
9060     return "(void)";
9061   }
9062 
9063   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
9064 
to_string(AndroidSurfaceCreateFlagsKHR)9065   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR  )
9066   {
9067 
9068     return "{}";
9069   }
9070 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
9071 
9072 
9073   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
9074 
9075   template <> struct FlagTraits<AttachmentDescriptionFlagBits>
9076   {
9077     enum : VkFlags
9078     {
9079       allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias)
9080     };
9081   };
9082 
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9083   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9084   {
9085     return AttachmentDescriptionFlags( bit0 ) | bit1;
9086   }
9087 
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9088   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9089   {
9090     return AttachmentDescriptionFlags( bit0 ) & bit1;
9091   }
9092 
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9093   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9094   {
9095     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
9096   }
9097 
operator ~(AttachmentDescriptionFlagBits bits)9098   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
9099   {
9100     return ~( AttachmentDescriptionFlags( bits ) );
9101   }
9102 
to_string(AttachmentDescriptionFlags value)9103   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value  )
9104   {
9105 
9106     if ( !value ) return "{}";
9107     std::string result;
9108 
9109     if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | ";
9110     return "{ " + result.substr(0, result.size() - 3) + " }";
9111   }
9112 
9113 
9114   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
9115 
9116   template <> struct FlagTraits<BufferCreateFlagBits>
9117   {
9118     enum : VkFlags
9119     {
9120       allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplay)
9121     };
9122   };
9123 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9124   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9125   {
9126     return BufferCreateFlags( bit0 ) | bit1;
9127   }
9128 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9129   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9130   {
9131     return BufferCreateFlags( bit0 ) & bit1;
9132   }
9133 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9134   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9135   {
9136     return BufferCreateFlags( bit0 ) ^ bit1;
9137   }
9138 
operator ~(BufferCreateFlagBits bits)9139   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9140   {
9141     return ~( BufferCreateFlags( bits ) );
9142   }
9143 
to_string(BufferCreateFlags value)9144   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value  )
9145   {
9146 
9147     if ( !value ) return "{}";
9148     std::string result;
9149 
9150     if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
9151     if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
9152     if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
9153     if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
9154     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
9155     return "{ " + result.substr(0, result.size() - 3) + " }";
9156   }
9157 
9158 
9159   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
9160 
9161   template <> struct FlagTraits<BufferUsageFlagBits>
9162   {
9163     enum : VkFlags
9164     {
9165       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)
9166     };
9167   };
9168 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9169   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9170   {
9171     return BufferUsageFlags( bit0 ) | bit1;
9172   }
9173 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9174   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9175   {
9176     return BufferUsageFlags( bit0 ) & bit1;
9177   }
9178 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9179   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9180   {
9181     return BufferUsageFlags( bit0 ) ^ bit1;
9182   }
9183 
operator ~(BufferUsageFlagBits bits)9184   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9185   {
9186     return ~( BufferUsageFlags( bits ) );
9187   }
9188 
to_string(BufferUsageFlags value)9189   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value  )
9190   {
9191 
9192     if ( !value ) return "{}";
9193     std::string result;
9194 
9195     if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
9196     if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | ";
9197     if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
9198     if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
9199     if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | ";
9200     if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | ";
9201     if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | ";
9202     if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
9203     if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | ";
9204     if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | ";
9205     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | ";
9206     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | ";
9207     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
9208     if ( value & BufferUsageFlagBits::eRayTracingKHR ) result += "RayTracingKHR | ";
9209     return "{ " + result.substr(0, result.size() - 3) + " }";
9210   }
9211 
9212 
9213   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
9214 
to_string(BufferViewCreateFlags)9215   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags  )
9216   {
9217 
9218     return "{}";
9219   }
9220 
9221 
9222   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
9223 
9224   template <> struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
9225   {
9226     enum : VkFlags
9227     {
9228       allFlags = VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eLowMemory)
9229     };
9230   };
9231 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9232   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9233   {
9234     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
9235   }
9236 
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9237   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9238   {
9239     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
9240   }
9241 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9242   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9243   {
9244     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
9245   }
9246 
operator ~(BuildAccelerationStructureFlagBitsKHR bits)9247   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
9248   {
9249     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
9250   }
9251 
9252   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
9253 
to_string(BuildAccelerationStructureFlagsKHR value)9254   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value  )
9255   {
9256 
9257     if ( !value ) return "{}";
9258     std::string result;
9259 
9260     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) result += "AllowUpdate | ";
9261     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) result += "AllowCompaction | ";
9262     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) result += "PreferFastTrace | ";
9263     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) result += "PreferFastBuild | ";
9264     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) result += "LowMemory | ";
9265     return "{ " + result.substr(0, result.size() - 3) + " }";
9266   }
9267 
9268 
9269   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
9270 
9271   template <> struct FlagTraits<ColorComponentFlagBits>
9272   {
9273     enum : VkFlags
9274     {
9275       allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA)
9276     };
9277   };
9278 
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9279   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9280   {
9281     return ColorComponentFlags( bit0 ) | bit1;
9282   }
9283 
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9284   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9285   {
9286     return ColorComponentFlags( bit0 ) & bit1;
9287   }
9288 
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9289   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9290   {
9291     return ColorComponentFlags( bit0 ) ^ bit1;
9292   }
9293 
operator ~(ColorComponentFlagBits bits)9294   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT
9295   {
9296     return ~( ColorComponentFlags( bits ) );
9297   }
9298 
to_string(ColorComponentFlags value)9299   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value  )
9300   {
9301 
9302     if ( !value ) return "{}";
9303     std::string result;
9304 
9305     if ( value & ColorComponentFlagBits::eR ) result += "R | ";
9306     if ( value & ColorComponentFlagBits::eG ) result += "G | ";
9307     if ( value & ColorComponentFlagBits::eB ) result += "B | ";
9308     if ( value & ColorComponentFlagBits::eA ) result += "A | ";
9309     return "{ " + result.substr(0, result.size() - 3) + " }";
9310   }
9311 
9312 
9313   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
9314 
9315   template <> struct FlagTraits<CommandBufferResetFlagBits>
9316   {
9317     enum : VkFlags
9318     {
9319       allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources)
9320     };
9321   };
9322 
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9323   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9324   {
9325     return CommandBufferResetFlags( bit0 ) | bit1;
9326   }
9327 
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9328   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9329   {
9330     return CommandBufferResetFlags( bit0 ) & bit1;
9331   }
9332 
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9333   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9334   {
9335     return CommandBufferResetFlags( bit0 ) ^ bit1;
9336   }
9337 
operator ~(CommandBufferResetFlagBits bits)9338   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
9339   {
9340     return ~( CommandBufferResetFlags( bits ) );
9341   }
9342 
to_string(CommandBufferResetFlags value)9343   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value  )
9344   {
9345 
9346     if ( !value ) return "{}";
9347     std::string result;
9348 
9349     if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
9350     return "{ " + result.substr(0, result.size() - 3) + " }";
9351   }
9352 
9353 
9354   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
9355 
9356   template <> struct FlagTraits<CommandBufferUsageFlagBits>
9357   {
9358     enum : VkFlags
9359     {
9360       allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse)
9361     };
9362   };
9363 
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9364   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9365   {
9366     return CommandBufferUsageFlags( bit0 ) | bit1;
9367   }
9368 
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9369   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9370   {
9371     return CommandBufferUsageFlags( bit0 ) & bit1;
9372   }
9373 
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9374   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9375   {
9376     return CommandBufferUsageFlags( bit0 ) ^ bit1;
9377   }
9378 
operator ~(CommandBufferUsageFlagBits bits)9379   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9380   {
9381     return ~( CommandBufferUsageFlags( bits ) );
9382   }
9383 
to_string(CommandBufferUsageFlags value)9384   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value  )
9385   {
9386 
9387     if ( !value ) return "{}";
9388     std::string result;
9389 
9390     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
9391     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
9392     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | ";
9393     return "{ " + result.substr(0, result.size() - 3) + " }";
9394   }
9395 
9396 
9397   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
9398 
9399   template <> struct FlagTraits<CommandPoolCreateFlagBits>
9400   {
9401     enum : VkFlags
9402     {
9403       allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected)
9404     };
9405   };
9406 
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9407   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9408   {
9409     return CommandPoolCreateFlags( bit0 ) | bit1;
9410   }
9411 
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9412   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9413   {
9414     return CommandPoolCreateFlags( bit0 ) & bit1;
9415   }
9416 
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9417   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9418   {
9419     return CommandPoolCreateFlags( bit0 ) ^ bit1;
9420   }
9421 
operator ~(CommandPoolCreateFlagBits bits)9422   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9423   {
9424     return ~( CommandPoolCreateFlags( bits ) );
9425   }
9426 
to_string(CommandPoolCreateFlags value)9427   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value  )
9428   {
9429 
9430     if ( !value ) return "{}";
9431     std::string result;
9432 
9433     if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
9434     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
9435     if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | ";
9436     return "{ " + result.substr(0, result.size() - 3) + " }";
9437   }
9438 
9439 
9440   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
9441 
9442   template <> struct FlagTraits<CommandPoolResetFlagBits>
9443   {
9444     enum : VkFlags
9445     {
9446       allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources)
9447     };
9448   };
9449 
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)9450   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9451   {
9452     return CommandPoolResetFlags( bit0 ) | bit1;
9453   }
9454 
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)9455   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9456   {
9457     return CommandPoolResetFlags( bit0 ) & bit1;
9458   }
9459 
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)9460   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9461   {
9462     return CommandPoolResetFlags( bit0 ) ^ bit1;
9463   }
9464 
operator ~(CommandPoolResetFlagBits bits)9465   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
9466   {
9467     return ~( CommandPoolResetFlags( bits ) );
9468   }
9469 
to_string(CommandPoolResetFlags value)9470   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value  )
9471   {
9472 
9473     if ( !value ) return "{}";
9474     std::string result;
9475 
9476     if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
9477     return "{ " + result.substr(0, result.size() - 3) + " }";
9478   }
9479 
9480   enum class CommandPoolTrimFlagBits : VkFlags
9481   {};
9482 
to_string(CommandPoolTrimFlagBits)9483   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
9484   {
9485     return "(void)";
9486   }
9487 
9488   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
9489 
9490   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
9491 
to_string(CommandPoolTrimFlags)9492   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags  )
9493   {
9494 
9495     return "{}";
9496   }
9497 
9498 
9499   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
9500 
9501   template <> struct FlagTraits<CompositeAlphaFlagBitsKHR>
9502   {
9503     enum : VkFlags
9504     {
9505       allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit)
9506     };
9507   };
9508 
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)9509   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9510   {
9511     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
9512   }
9513 
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)9514   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9515   {
9516     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
9517   }
9518 
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)9519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9520   {
9521     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
9522   }
9523 
operator ~(CompositeAlphaFlagBitsKHR bits)9524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
9525   {
9526     return ~( CompositeAlphaFlagsKHR( bits ) );
9527   }
9528 
to_string(CompositeAlphaFlagsKHR value)9529   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value  )
9530   {
9531 
9532     if ( !value ) return "{}";
9533     std::string result;
9534 
9535     if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
9536     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
9537     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
9538     if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | ";
9539     return "{ " + result.substr(0, result.size() - 3) + " }";
9540   }
9541 
9542 
9543   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
9544 
9545   template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT>
9546   {
9547     enum : VkFlags
9548     {
9549       allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted)
9550     };
9551   };
9552 
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)9553   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9554   {
9555     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
9556   }
9557 
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)9558   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9559   {
9560     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
9561   }
9562 
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)9563   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9564   {
9565     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
9566   }
9567 
operator ~(ConditionalRenderingFlagBitsEXT bits)9568   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
9569   {
9570     return ~( ConditionalRenderingFlagsEXT( bits ) );
9571   }
9572 
to_string(ConditionalRenderingFlagsEXT value)9573   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value  )
9574   {
9575 
9576     if ( !value ) return "{}";
9577     std::string result;
9578 
9579     if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | ";
9580     return "{ " + result.substr(0, result.size() - 3) + " }";
9581   }
9582 
9583 
9584   using CullModeFlags = Flags<CullModeFlagBits>;
9585 
9586   template <> struct FlagTraits<CullModeFlagBits>
9587   {
9588     enum : VkFlags
9589     {
9590       allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack)
9591     };
9592   };
9593 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)9594   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9595   {
9596     return CullModeFlags( bit0 ) | bit1;
9597   }
9598 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)9599   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9600   {
9601     return CullModeFlags( bit0 ) & bit1;
9602   }
9603 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)9604   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9605   {
9606     return CullModeFlags( bit0 ) ^ bit1;
9607   }
9608 
operator ~(CullModeFlagBits bits)9609   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
9610   {
9611     return ~( CullModeFlags( bits ) );
9612   }
9613 
to_string(CullModeFlags value)9614   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value  )
9615   {
9616 
9617     if ( !value ) return "{}";
9618     std::string result;
9619 
9620     if ( value & CullModeFlagBits::eFront ) result += "Front | ";
9621     if ( value & CullModeFlagBits::eBack ) result += "Back | ";
9622     return "{ " + result.substr(0, result.size() - 3) + " }";
9623   }
9624 
9625 
9626   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
9627 
9628   template <> struct FlagTraits<DebugReportFlagBitsEXT>
9629   {
9630     enum : VkFlags
9631     {
9632       allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug)
9633     };
9634   };
9635 
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)9636   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9637   {
9638     return DebugReportFlagsEXT( bit0 ) | bit1;
9639   }
9640 
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)9641   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9642   {
9643     return DebugReportFlagsEXT( bit0 ) & bit1;
9644   }
9645 
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)9646   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9647   {
9648     return DebugReportFlagsEXT( bit0 ) ^ bit1;
9649   }
9650 
operator ~(DebugReportFlagBitsEXT bits)9651   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
9652   {
9653     return ~( DebugReportFlagsEXT( bits ) );
9654   }
9655 
to_string(DebugReportFlagsEXT value)9656   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value  )
9657   {
9658 
9659     if ( !value ) return "{}";
9660     std::string result;
9661 
9662     if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | ";
9663     if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | ";
9664     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
9665     if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
9666     if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | ";
9667     return "{ " + result.substr(0, result.size() - 3) + " }";
9668   }
9669 
9670 
9671   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
9672 
9673   template <> struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
9674   {
9675     enum : VkFlags
9676     {
9677       allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError)
9678     };
9679   };
9680 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)9681   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9682   {
9683     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
9684   }
9685 
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)9686   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9687   {
9688     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
9689   }
9690 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)9691   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9692   {
9693     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
9694   }
9695 
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)9696   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
9697   {
9698     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
9699   }
9700 
to_string(DebugUtilsMessageSeverityFlagsEXT value)9701   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value  )
9702   {
9703 
9704     if ( !value ) return "{}";
9705     std::string result;
9706 
9707     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | ";
9708     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
9709     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
9710     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | ";
9711     return "{ " + result.substr(0, result.size() - 3) + " }";
9712   }
9713 
9714 
9715   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
9716 
9717   template <> struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
9718   {
9719     enum : VkFlags
9720     {
9721       allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance)
9722     };
9723   };
9724 
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)9725   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9726   {
9727     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
9728   }
9729 
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)9730   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9731   {
9732     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
9733   }
9734 
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)9735   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
9736   {
9737     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
9738   }
9739 
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)9740   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
9741   {
9742     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
9743   }
9744 
to_string(DebugUtilsMessageTypeFlagsEXT value)9745   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value  )
9746   {
9747 
9748     if ( !value ) return "{}";
9749     std::string result;
9750 
9751     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
9752     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
9753     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | ";
9754     return "{ " + result.substr(0, result.size() - 3) + " }";
9755   }
9756 
9757   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags
9758   {};
9759 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)9760   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
9761   {
9762     return "(void)";
9763   }
9764 
9765   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
9766 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)9767   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT  )
9768   {
9769 
9770     return "{}";
9771   }
9772 
9773   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags
9774   {};
9775 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)9776   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
9777   {
9778     return "(void)";
9779   }
9780 
9781   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
9782 
to_string(DebugUtilsMessengerCreateFlagsEXT)9783   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT  )
9784   {
9785 
9786     return "{}";
9787   }
9788 
9789 
9790   using DependencyFlags = Flags<DependencyFlagBits>;
9791 
9792   template <> struct FlagTraits<DependencyFlagBits>
9793   {
9794     enum : VkFlags
9795     {
9796       allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal)
9797     };
9798   };
9799 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)9800   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9801   {
9802     return DependencyFlags( bit0 ) | bit1;
9803   }
9804 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)9805   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9806   {
9807     return DependencyFlags( bit0 ) & bit1;
9808   }
9809 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)9810   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9811   {
9812     return DependencyFlags( bit0 ) ^ bit1;
9813   }
9814 
operator ~(DependencyFlagBits bits)9815   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
9816   {
9817     return ~( DependencyFlags( bits ) );
9818   }
9819 
to_string(DependencyFlags value)9820   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value  )
9821   {
9822 
9823     if ( !value ) return "{}";
9824     std::string result;
9825 
9826     if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
9827     if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
9828     if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | ";
9829     return "{ " + result.substr(0, result.size() - 3) + " }";
9830   }
9831 
9832 
9833   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
9834 
9835   template <> struct FlagTraits<DescriptorBindingFlagBits>
9836   {
9837     enum : VkFlags
9838     {
9839       allFlags = VkFlags(DescriptorBindingFlagBits::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBits::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBits::ePartiallyBound) | VkFlags(DescriptorBindingFlagBits::eVariableDescriptorCount)
9840     };
9841   };
9842 
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)9843   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9844   {
9845     return DescriptorBindingFlags( bit0 ) | bit1;
9846   }
9847 
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)9848   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9849   {
9850     return DescriptorBindingFlags( bit0 ) & bit1;
9851   }
9852 
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)9853   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9854   {
9855     return DescriptorBindingFlags( bit0 ) ^ bit1;
9856   }
9857 
operator ~(DescriptorBindingFlagBits bits)9858   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT
9859   {
9860     return ~( DescriptorBindingFlags( bits ) );
9861   }
9862 
9863   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
9864 
to_string(DescriptorBindingFlags value)9865   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value  )
9866   {
9867 
9868     if ( !value ) return "{}";
9869     std::string result;
9870 
9871     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
9872     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
9873     if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | ";
9874     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | ";
9875     return "{ " + result.substr(0, result.size() - 3) + " }";
9876   }
9877 
9878 
9879   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
9880 
9881   template <> struct FlagTraits<DescriptorPoolCreateFlagBits>
9882   {
9883     enum : VkFlags
9884     {
9885       allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBind)
9886     };
9887   };
9888 
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)9889   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9890   {
9891     return DescriptorPoolCreateFlags( bit0 ) | bit1;
9892   }
9893 
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)9894   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9895   {
9896     return DescriptorPoolCreateFlags( bit0 ) & bit1;
9897   }
9898 
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)9899   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9900   {
9901     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
9902   }
9903 
operator ~(DescriptorPoolCreateFlagBits bits)9904   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9905   {
9906     return ~( DescriptorPoolCreateFlags( bits ) );
9907   }
9908 
to_string(DescriptorPoolCreateFlags value)9909   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value  )
9910   {
9911 
9912     if ( !value ) return "{}";
9913     std::string result;
9914 
9915     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
9916     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
9917     return "{ " + result.substr(0, result.size() - 3) + " }";
9918   }
9919 
9920   enum class DescriptorPoolResetFlagBits : VkFlags
9921   {};
9922 
to_string(DescriptorPoolResetFlagBits)9923   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
9924   {
9925     return "(void)";
9926   }
9927 
9928   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
9929 
to_string(DescriptorPoolResetFlags)9930   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags  )
9931   {
9932 
9933     return "{}";
9934   }
9935 
9936 
9937   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
9938 
9939   template <> struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
9940   {
9941     enum : VkFlags
9942     {
9943       allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool) | VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR)
9944     };
9945   };
9946 
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)9947   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9948   {
9949     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
9950   }
9951 
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)9952   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9953   {
9954     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
9955   }
9956 
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)9957   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9958   {
9959     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
9960   }
9961 
operator ~(DescriptorSetLayoutCreateFlagBits bits)9962   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9963   {
9964     return ~( DescriptorSetLayoutCreateFlags( bits ) );
9965   }
9966 
to_string(DescriptorSetLayoutCreateFlags value)9967   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value  )
9968   {
9969 
9970     if ( !value ) return "{}";
9971     std::string result;
9972 
9973     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | ";
9974     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
9975     return "{ " + result.substr(0, result.size() - 3) + " }";
9976   }
9977 
9978   enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags
9979   {};
9980 
to_string(DescriptorUpdateTemplateCreateFlagBits)9981   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
9982   {
9983     return "(void)";
9984   }
9985 
9986   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
9987 
9988   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
9989 
to_string(DescriptorUpdateTemplateCreateFlags)9990   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags  )
9991   {
9992 
9993     return "{}";
9994   }
9995 
9996 
9997   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
9998 
to_string(DeviceCreateFlags)9999   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags  )
10000   {
10001 
10002     return "{}";
10003   }
10004 
10005 
10006   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
10007 
10008   template <> struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
10009   {
10010     enum : VkFlags
10011     {
10012       allFlags = VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints)
10013     };
10014   };
10015 
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10016   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10017   {
10018     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
10019   }
10020 
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10021   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10022   {
10023     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
10024   }
10025 
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10026   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10027   {
10028     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
10029   }
10030 
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)10031   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10032   {
10033     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
10034   }
10035 
to_string(DeviceDiagnosticsConfigFlagsNV value)10036   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value  )
10037   {
10038 
10039     if ( !value ) return "{}";
10040     std::string result;
10041 
10042     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) result += "EnableShaderDebugInfo | ";
10043     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) result += "EnableResourceTracking | ";
10044     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) result += "EnableAutomaticCheckpoints | ";
10045     return "{ " + result.substr(0, result.size() - 3) + " }";
10046   }
10047 
10048 
10049   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
10050 
10051   template <> struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
10052   {
10053     enum : VkFlags
10054     {
10055       allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice)
10056     };
10057   };
10058 
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10059   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10060   {
10061     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
10062   }
10063 
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10064   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10065   {
10066     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
10067   }
10068 
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10069   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10070   {
10071     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
10072   }
10073 
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)10074   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10075   {
10076     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
10077   }
10078 
to_string(DeviceGroupPresentModeFlagsKHR value)10079   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value  )
10080   {
10081 
10082     if ( !value ) return "{}";
10083     std::string result;
10084 
10085     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | ";
10086     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
10087     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
10088     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | ";
10089     return "{ " + result.substr(0, result.size() - 3) + " }";
10090   }
10091 
10092 
10093   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
10094 
10095   template <> struct FlagTraits<DeviceQueueCreateFlagBits>
10096   {
10097     enum : VkFlags
10098     {
10099       allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected)
10100     };
10101   };
10102 
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10103   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10104   {
10105     return DeviceQueueCreateFlags( bit0 ) | bit1;
10106   }
10107 
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10108   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10109   {
10110     return DeviceQueueCreateFlags( bit0 ) & bit1;
10111   }
10112 
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10113   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10114   {
10115     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
10116   }
10117 
operator ~(DeviceQueueCreateFlagBits bits)10118   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10119   {
10120     return ~( DeviceQueueCreateFlags( bits ) );
10121   }
10122 
to_string(DeviceQueueCreateFlags value)10123   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value  )
10124   {
10125 
10126     if ( !value ) return "{}";
10127     std::string result;
10128 
10129     if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | ";
10130     return "{ " + result.substr(0, result.size() - 3) + " }";
10131   }
10132 
10133   enum class DisplayModeCreateFlagBitsKHR : VkFlags
10134   {};
10135 
to_string(DisplayModeCreateFlagBitsKHR)10136   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
10137   {
10138     return "(void)";
10139   }
10140 
10141   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
10142 
to_string(DisplayModeCreateFlagsKHR)10143   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR  )
10144   {
10145 
10146     return "{}";
10147   }
10148 
10149 
10150   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
10151 
10152   template <> struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
10153   {
10154     enum : VkFlags
10155     {
10156       allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied)
10157     };
10158   };
10159 
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10160   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10161   {
10162     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
10163   }
10164 
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10165   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10166   {
10167     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
10168   }
10169 
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10170   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10171   {
10172     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
10173   }
10174 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)10175   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10176   {
10177     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
10178   }
10179 
to_string(DisplayPlaneAlphaFlagsKHR value)10180   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value  )
10181   {
10182 
10183     if ( !value ) return "{}";
10184     std::string result;
10185 
10186     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10187     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
10188     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
10189     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | ";
10190     return "{ " + result.substr(0, result.size() - 3) + " }";
10191   }
10192 
10193   enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags
10194   {};
10195 
to_string(DisplaySurfaceCreateFlagBitsKHR)10196   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
10197   {
10198     return "(void)";
10199   }
10200 
10201   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
10202 
to_string(DisplaySurfaceCreateFlagsKHR)10203   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR  )
10204   {
10205 
10206     return "{}";
10207   }
10208 
10209   enum class EventCreateFlagBits : VkFlags
10210   {};
10211 
to_string(EventCreateFlagBits)10212   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits )
10213   {
10214     return "(void)";
10215   }
10216 
10217   using EventCreateFlags = Flags<EventCreateFlagBits>;
10218 
to_string(EventCreateFlags)10219   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags  )
10220   {
10221 
10222     return "{}";
10223   }
10224 
10225 
10226   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
10227 
10228   template <> struct FlagTraits<ExternalFenceFeatureFlagBits>
10229   {
10230     enum : VkFlags
10231     {
10232       allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable)
10233     };
10234   };
10235 
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10236   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10237   {
10238     return ExternalFenceFeatureFlags( bit0 ) | bit1;
10239   }
10240 
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10241   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10242   {
10243     return ExternalFenceFeatureFlags( bit0 ) & bit1;
10244   }
10245 
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10246   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10247   {
10248     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
10249   }
10250 
operator ~(ExternalFenceFeatureFlagBits bits)10251   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10252   {
10253     return ~( ExternalFenceFeatureFlags( bits ) );
10254   }
10255 
10256   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
10257 
to_string(ExternalFenceFeatureFlags value)10258   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value  )
10259   {
10260 
10261     if ( !value ) return "{}";
10262     std::string result;
10263 
10264     if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
10265     if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | ";
10266     return "{ " + result.substr(0, result.size() - 3) + " }";
10267   }
10268 
10269 
10270   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
10271 
10272   template <> struct FlagTraits<ExternalFenceHandleTypeFlagBits>
10273   {
10274     enum : VkFlags
10275     {
10276       allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd)
10277     };
10278   };
10279 
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10280   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10281   {
10282     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
10283   }
10284 
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10286   {
10287     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
10288   }
10289 
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10290   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10291   {
10292     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
10293   }
10294 
operator ~(ExternalFenceHandleTypeFlagBits bits)10295   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10296   {
10297     return ~( ExternalFenceHandleTypeFlags( bits ) );
10298   }
10299 
10300   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
10301 
to_string(ExternalFenceHandleTypeFlags value)10302   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value  )
10303   {
10304 
10305     if ( !value ) return "{}";
10306     std::string result;
10307 
10308     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
10309     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10310     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10311     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
10312     return "{ " + result.substr(0, result.size() - 3) + " }";
10313   }
10314 
10315 
10316   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
10317 
10318   template <> struct FlagTraits<ExternalMemoryFeatureFlagBits>
10319   {
10320     enum : VkFlags
10321     {
10322       allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable)
10323     };
10324   };
10325 
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10326   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10327   {
10328     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
10329   }
10330 
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10331   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10332   {
10333     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
10334   }
10335 
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10336   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10337   {
10338     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
10339   }
10340 
operator ~(ExternalMemoryFeatureFlagBits bits)10341   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10342   {
10343     return ~( ExternalMemoryFeatureFlags( bits ) );
10344   }
10345 
10346   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
10347 
to_string(ExternalMemoryFeatureFlags value)10348   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value  )
10349   {
10350 
10351     if ( !value ) return "{}";
10352     std::string result;
10353 
10354     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
10355     if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
10356     if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | ";
10357     return "{ " + result.substr(0, result.size() - 3) + " }";
10358   }
10359 
10360 
10361   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
10362 
10363   template <> struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
10364   {
10365     enum : VkFlags
10366     {
10367       allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable)
10368     };
10369   };
10370 
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10371   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10372   {
10373     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
10374   }
10375 
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10376   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10377   {
10378     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
10379   }
10380 
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10381   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10382   {
10383     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
10384   }
10385 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)10386   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10387   {
10388     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
10389   }
10390 
to_string(ExternalMemoryFeatureFlagsNV value)10391   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value  )
10392   {
10393 
10394     if ( !value ) return "{}";
10395     std::string result;
10396 
10397     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
10398     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
10399     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | ";
10400     return "{ " + result.substr(0, result.size() - 3) + " }";
10401   }
10402 
10403 
10404   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
10405 
10406   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
10407   {
10408     enum : VkFlags
10409     {
10410       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)
10411     };
10412   };
10413 
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10414   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10415   {
10416     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
10417   }
10418 
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10419   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10420   {
10421     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
10422   }
10423 
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10424   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10425   {
10426     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
10427   }
10428 
operator ~(ExternalMemoryHandleTypeFlagBits bits)10429   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10430   {
10431     return ~( ExternalMemoryHandleTypeFlags( bits ) );
10432   }
10433 
10434   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
10435 
to_string(ExternalMemoryHandleTypeFlags value)10436   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value  )
10437   {
10438 
10439     if ( !value ) return "{}";
10440     std::string result;
10441 
10442     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
10443     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10444     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10445     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | ";
10446     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | ";
10447     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | ";
10448     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | ";
10449     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | ";
10450     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
10451     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
10452     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | ";
10453     return "{ " + result.substr(0, result.size() - 3) + " }";
10454   }
10455 
10456 
10457   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
10458 
10459   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
10460   {
10461     enum : VkFlags
10462     {
10463       allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt)
10464     };
10465   };
10466 
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)10467   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10468   {
10469     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
10470   }
10471 
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)10472   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10473   {
10474     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
10475   }
10476 
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)10477   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10478   {
10479     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
10480   }
10481 
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)10482   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10483   {
10484     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
10485   }
10486 
to_string(ExternalMemoryHandleTypeFlagsNV value)10487   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value  )
10488   {
10489 
10490     if ( !value ) return "{}";
10491     std::string result;
10492 
10493     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10494     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10495     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
10496     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | ";
10497     return "{ " + result.substr(0, result.size() - 3) + " }";
10498   }
10499 
10500 
10501   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
10502 
10503   template <> struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
10504   {
10505     enum : VkFlags
10506     {
10507       allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable)
10508     };
10509   };
10510 
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)10511   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10512   {
10513     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
10514   }
10515 
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)10516   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10517   {
10518     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
10519   }
10520 
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)10521   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10522   {
10523     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
10524   }
10525 
operator ~(ExternalSemaphoreFeatureFlagBits bits)10526   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10527   {
10528     return ~( ExternalSemaphoreFeatureFlags( bits ) );
10529   }
10530 
10531   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
10532 
to_string(ExternalSemaphoreFeatureFlags value)10533   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value  )
10534   {
10535 
10536     if ( !value ) return "{}";
10537     std::string result;
10538 
10539     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
10540     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | ";
10541     return "{ " + result.substr(0, result.size() - 3) + " }";
10542   }
10543 
10544 
10545   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
10546 
10547   template <> struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
10548   {
10549     enum : VkFlags
10550     {
10551       allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd)
10552     };
10553   };
10554 
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)10555   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10556   {
10557     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
10558   }
10559 
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)10560   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10561   {
10562     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
10563   }
10564 
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)10565   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10566   {
10567     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
10568   }
10569 
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)10570   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10571   {
10572     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
10573   }
10574 
10575   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
10576 
to_string(ExternalSemaphoreHandleTypeFlags value)10577   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value  )
10578   {
10579 
10580     if ( !value ) return "{}";
10581     std::string result;
10582 
10583     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
10584     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10585     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10586     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
10587     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
10588     return "{ " + result.substr(0, result.size() - 3) + " }";
10589   }
10590 
10591 
10592   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
10593 
10594   template <> struct FlagTraits<FenceCreateFlagBits>
10595   {
10596     enum : VkFlags
10597     {
10598       allFlags = VkFlags(FenceCreateFlagBits::eSignaled)
10599     };
10600   };
10601 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)10602   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10603   {
10604     return FenceCreateFlags( bit0 ) | bit1;
10605   }
10606 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)10607   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10608   {
10609     return FenceCreateFlags( bit0 ) & bit1;
10610   }
10611 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)10612   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10613   {
10614     return FenceCreateFlags( bit0 ) ^ bit1;
10615   }
10616 
operator ~(FenceCreateFlagBits bits)10617   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10618   {
10619     return ~( FenceCreateFlags( bits ) );
10620   }
10621 
to_string(FenceCreateFlags value)10622   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value  )
10623   {
10624 
10625     if ( !value ) return "{}";
10626     std::string result;
10627 
10628     if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | ";
10629     return "{ " + result.substr(0, result.size() - 3) + " }";
10630   }
10631 
10632 
10633   using FenceImportFlags = Flags<FenceImportFlagBits>;
10634 
10635   template <> struct FlagTraits<FenceImportFlagBits>
10636   {
10637     enum : VkFlags
10638     {
10639       allFlags = VkFlags(FenceImportFlagBits::eTemporary)
10640     };
10641   };
10642 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)10643   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10644   {
10645     return FenceImportFlags( bit0 ) | bit1;
10646   }
10647 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)10648   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10649   {
10650     return FenceImportFlags( bit0 ) & bit1;
10651   }
10652 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)10653   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10654   {
10655     return FenceImportFlags( bit0 ) ^ bit1;
10656   }
10657 
operator ~(FenceImportFlagBits bits)10658   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
10659   {
10660     return ~( FenceImportFlags( bits ) );
10661   }
10662 
10663   using FenceImportFlagsKHR = FenceImportFlags;
10664 
to_string(FenceImportFlags value)10665   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value  )
10666   {
10667 
10668     if ( !value ) return "{}";
10669     std::string result;
10670 
10671     if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | ";
10672     return "{ " + result.substr(0, result.size() - 3) + " }";
10673   }
10674 
10675 
10676   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
10677 
10678   template <> struct FlagTraits<FormatFeatureFlagBits>
10679   {
10680     enum : VkFlags
10681     {
10682       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)
10683     };
10684   };
10685 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)10686   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10687   {
10688     return FormatFeatureFlags( bit0 ) | bit1;
10689   }
10690 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)10691   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10692   {
10693     return FormatFeatureFlags( bit0 ) & bit1;
10694   }
10695 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)10696   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10697   {
10698     return FormatFeatureFlags( bit0 ) ^ bit1;
10699   }
10700 
operator ~(FormatFeatureFlagBits bits)10701   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10702   {
10703     return ~( FormatFeatureFlags( bits ) );
10704   }
10705 
to_string(FormatFeatureFlags value)10706   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value  )
10707   {
10708 
10709     if ( !value ) return "{}";
10710     std::string result;
10711 
10712     if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | ";
10713     if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | ";
10714     if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | ";
10715     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
10716     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
10717     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | ";
10718     if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
10719     if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | ";
10720     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | ";
10721     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
10722     if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | ";
10723     if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | ";
10724     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | ";
10725     if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | ";
10726     if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | ";
10727     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | ";
10728     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | ";
10729     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
10730     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
10731     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
10732     if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
10733     if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
10734     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | ";
10735     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
10736     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) result += "AccelerationStructureVertexBufferKHR | ";
10737     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
10738     return "{ " + result.substr(0, result.size() - 3) + " }";
10739   }
10740 
10741 
10742   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
10743 
10744   template <> struct FlagTraits<FramebufferCreateFlagBits>
10745   {
10746     enum : VkFlags
10747     {
10748       allFlags = VkFlags(FramebufferCreateFlagBits::eImageless)
10749     };
10750   };
10751 
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10752   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10753   {
10754     return FramebufferCreateFlags( bit0 ) | bit1;
10755   }
10756 
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10757   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10758   {
10759     return FramebufferCreateFlags( bit0 ) & bit1;
10760   }
10761 
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10762   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10763   {
10764     return FramebufferCreateFlags( bit0 ) ^ bit1;
10765   }
10766 
operator ~(FramebufferCreateFlagBits bits)10767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10768   {
10769     return ~( FramebufferCreateFlags( bits ) );
10770   }
10771 
to_string(FramebufferCreateFlags value)10772   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value  )
10773   {
10774 
10775     if ( !value ) return "{}";
10776     std::string result;
10777 
10778     if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | ";
10779     return "{ " + result.substr(0, result.size() - 3) + " }";
10780   }
10781 
10782 
10783   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
10784 
10785   template <> struct FlagTraits<GeometryFlagBitsKHR>
10786   {
10787     enum : VkFlags
10788     {
10789       allFlags = VkFlags(GeometryFlagBitsKHR::eOpaque) | VkFlags(GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation)
10790     };
10791   };
10792 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)10793   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10794   {
10795     return GeometryFlagsKHR( bit0 ) | bit1;
10796   }
10797 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)10798   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10799   {
10800     return GeometryFlagsKHR( bit0 ) & bit1;
10801   }
10802 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)10803   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10804   {
10805     return GeometryFlagsKHR( bit0 ) ^ bit1;
10806   }
10807 
operator ~(GeometryFlagBitsKHR bits)10808   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10809   {
10810     return ~( GeometryFlagsKHR( bits ) );
10811   }
10812 
10813   using GeometryFlagsNV = GeometryFlagsKHR;
10814 
to_string(GeometryFlagsKHR value)10815   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value  )
10816   {
10817 
10818     if ( !value ) return "{}";
10819     std::string result;
10820 
10821     if ( value & GeometryFlagBitsKHR::eOpaque ) result += "Opaque | ";
10822     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | ";
10823     return "{ " + result.substr(0, result.size() - 3) + " }";
10824   }
10825 
10826 
10827   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
10828 
10829   template <> struct FlagTraits<GeometryInstanceFlagBitsKHR>
10830   {
10831     enum : VkFlags
10832     {
10833       allFlags = VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable) | VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsKHR::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsKHR::eForceNoOpaque)
10834     };
10835   };
10836 
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)10837   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10838   {
10839     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
10840   }
10841 
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)10842   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10843   {
10844     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
10845   }
10846 
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)10847   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10848   {
10849     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
10850   }
10851 
operator ~(GeometryInstanceFlagBitsKHR bits)10852   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10853   {
10854     return ~( GeometryInstanceFlagsKHR( bits ) );
10855   }
10856 
10857   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
10858 
to_string(GeometryInstanceFlagsKHR value)10859   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value  )
10860   {
10861 
10862     if ( !value ) return "{}";
10863     std::string result;
10864 
10865     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) result += "TriangleFacingCullDisable | ";
10866     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
10867     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) result += "ForceOpaque | ";
10868     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) result += "ForceNoOpaque | ";
10869     return "{ " + result.substr(0, result.size() - 3) + " }";
10870   }
10871 
10872   enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags
10873   {};
10874 
to_string(HeadlessSurfaceCreateFlagBitsEXT)10875   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
10876   {
10877     return "(void)";
10878   }
10879 
10880   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
10881 
to_string(HeadlessSurfaceCreateFlagsEXT)10882   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT  )
10883   {
10884 
10885     return "{}";
10886   }
10887 
10888 #ifdef VK_USE_PLATFORM_IOS_MVK
10889   enum class IOSSurfaceCreateFlagBitsMVK : VkFlags
10890   {};
10891 
to_string(IOSSurfaceCreateFlagBitsMVK)10892   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
10893   {
10894     return "(void)";
10895   }
10896 
10897   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
10898 
to_string(IOSSurfaceCreateFlagsMVK)10899   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK  )
10900   {
10901 
10902     return "{}";
10903   }
10904 #endif /*VK_USE_PLATFORM_IOS_MVK*/
10905 
10906 
10907   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
10908 
10909   template <> struct FlagTraits<ImageAspectFlagBits>
10910   {
10911     enum : VkFlags
10912     {
10913       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)
10914     };
10915   };
10916 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)10917   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10918   {
10919     return ImageAspectFlags( bit0 ) | bit1;
10920   }
10921 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)10922   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10923   {
10924     return ImageAspectFlags( bit0 ) & bit1;
10925   }
10926 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)10927   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10928   {
10929     return ImageAspectFlags( bit0 ) ^ bit1;
10930   }
10931 
operator ~(ImageAspectFlagBits bits)10932   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
10933   {
10934     return ~( ImageAspectFlags( bits ) );
10935   }
10936 
to_string(ImageAspectFlags value)10937   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value  )
10938   {
10939 
10940     if ( !value ) return "{}";
10941     std::string result;
10942 
10943     if ( value & ImageAspectFlagBits::eColor ) result += "Color | ";
10944     if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | ";
10945     if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | ";
10946     if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | ";
10947     if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | ";
10948     if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | ";
10949     if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | ";
10950     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | ";
10951     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
10952     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
10953     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | ";
10954     return "{ " + result.substr(0, result.size() - 3) + " }";
10955   }
10956 
10957 
10958   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
10959 
10960   template <> struct FlagTraits<ImageCreateFlagBits>
10961   {
10962     enum : VkFlags
10963     {
10964       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)
10965     };
10966   };
10967 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)10968   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10969   {
10970     return ImageCreateFlags( bit0 ) | bit1;
10971   }
10972 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)10973   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10974   {
10975     return ImageCreateFlags( bit0 ) & bit1;
10976   }
10977 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)10978   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10979   {
10980     return ImageCreateFlags( bit0 ) ^ bit1;
10981   }
10982 
operator ~(ImageCreateFlagBits bits)10983   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10984   {
10985     return ~( ImageCreateFlags( bits ) );
10986   }
10987 
to_string(ImageCreateFlags value)10988   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value  )
10989   {
10990 
10991     if ( !value ) return "{}";
10992     std::string result;
10993 
10994     if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
10995     if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
10996     if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
10997     if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | ";
10998     if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | ";
10999     if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | ";
11000     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
11001     if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | ";
11002     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | ";
11003     if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | ";
11004     if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | ";
11005     if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | ";
11006     if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
11007     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
11008     if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
11009     return "{ " + result.substr(0, result.size() - 3) + " }";
11010   }
11011 
11012 #ifdef VK_USE_PLATFORM_FUCHSIA
11013   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags
11014   {};
11015 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)11016   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
11017   {
11018     return "(void)";
11019   }
11020 
11021   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
11022 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)11023   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA  )
11024   {
11025 
11026     return "{}";
11027   }
11028 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11029 
11030 
11031   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
11032 
11033   template <> struct FlagTraits<ImageUsageFlagBits>
11034   {
11035     enum : VkFlags
11036     {
11037       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)
11038     };
11039   };
11040 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11041   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11042   {
11043     return ImageUsageFlags( bit0 ) | bit1;
11044   }
11045 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11046   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11047   {
11048     return ImageUsageFlags( bit0 ) & bit1;
11049   }
11050 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11051   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11052   {
11053     return ImageUsageFlags( bit0 ) ^ bit1;
11054   }
11055 
operator ~(ImageUsageFlagBits bits)11056   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
11057   {
11058     return ~( ImageUsageFlags( bits ) );
11059   }
11060 
to_string(ImageUsageFlags value)11061   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value  )
11062   {
11063 
11064     if ( !value ) return "{}";
11065     std::string result;
11066 
11067     if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
11068     if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | ";
11069     if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | ";
11070     if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | ";
11071     if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | ";
11072     if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
11073     if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | ";
11074     if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
11075     if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
11076     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
11077     return "{ " + result.substr(0, result.size() - 3) + " }";
11078   }
11079 
11080 
11081   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
11082 
11083   template <> struct FlagTraits<ImageViewCreateFlagBits>
11084   {
11085     enum : VkFlags
11086     {
11087       allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT)
11088     };
11089   };
11090 
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11091   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11092   {
11093     return ImageViewCreateFlags( bit0 ) | bit1;
11094   }
11095 
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11096   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11097   {
11098     return ImageViewCreateFlags( bit0 ) & bit1;
11099   }
11100 
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11101   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11102   {
11103     return ImageViewCreateFlags( bit0 ) ^ bit1;
11104   }
11105 
operator ~(ImageViewCreateFlagBits bits)11106   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11107   {
11108     return ~( ImageViewCreateFlags( bits ) );
11109   }
11110 
to_string(ImageViewCreateFlags value)11111   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value  )
11112   {
11113 
11114     if ( !value ) return "{}";
11115     std::string result;
11116 
11117     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | ";
11118     return "{ " + result.substr(0, result.size() - 3) + " }";
11119   }
11120 
11121 
11122   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
11123 
11124   template <> struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
11125   {
11126     enum : VkFlags
11127     {
11128       allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences)
11129     };
11130   };
11131 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11132   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11133   {
11134     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
11135   }
11136 
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11137   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11138   {
11139     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
11140   }
11141 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11142   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11143   {
11144     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
11145   }
11146 
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)11147   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11148   {
11149     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
11150   }
11151 
to_string(IndirectCommandsLayoutUsageFlagsNV value)11152   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value  )
11153   {
11154 
11155     if ( !value ) return "{}";
11156     std::string result;
11157 
11158     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) result += "ExplicitPreprocess | ";
11159     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) result += "IndexedSequences | ";
11160     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) result += "UnorderedSequences | ";
11161     return "{ " + result.substr(0, result.size() - 3) + " }";
11162   }
11163 
11164 
11165   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
11166 
11167   template <> struct FlagTraits<IndirectStateFlagBitsNV>
11168   {
11169     enum : VkFlags
11170     {
11171       allFlags = VkFlags(IndirectStateFlagBitsNV::eFlagFrontface)
11172     };
11173   };
11174 
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11175   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11176   {
11177     return IndirectStateFlagsNV( bit0 ) | bit1;
11178   }
11179 
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11180   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11181   {
11182     return IndirectStateFlagsNV( bit0 ) & bit1;
11183   }
11184 
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11185   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11186   {
11187     return IndirectStateFlagsNV( bit0 ) ^ bit1;
11188   }
11189 
operator ~(IndirectStateFlagBitsNV bits)11190   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11191   {
11192     return ~( IndirectStateFlagsNV( bits ) );
11193   }
11194 
to_string(IndirectStateFlagsNV value)11195   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value  )
11196   {
11197 
11198     if ( !value ) return "{}";
11199     std::string result;
11200 
11201     if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) result += "FlagFrontface | ";
11202     return "{ " + result.substr(0, result.size() - 3) + " }";
11203   }
11204 
11205 
11206   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
11207 
to_string(InstanceCreateFlags)11208   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags  )
11209   {
11210 
11211     return "{}";
11212   }
11213 
11214 #ifdef VK_USE_PLATFORM_MACOS_MVK
11215   enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags
11216   {};
11217 
to_string(MacOSSurfaceCreateFlagBitsMVK)11218   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
11219   {
11220     return "(void)";
11221   }
11222 
11223   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
11224 
to_string(MacOSSurfaceCreateFlagsMVK)11225   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK  )
11226   {
11227 
11228     return "{}";
11229   }
11230 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
11231 
11232 
11233   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
11234 
11235   template <> struct FlagTraits<MemoryAllocateFlagBits>
11236   {
11237     enum : VkFlags
11238     {
11239       allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask) | VkFlags(MemoryAllocateFlagBits::eDeviceAddress) | VkFlags(MemoryAllocateFlagBits::eDeviceAddressCaptureReplay)
11240     };
11241   };
11242 
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11243   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11244   {
11245     return MemoryAllocateFlags( bit0 ) | bit1;
11246   }
11247 
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11248   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11249   {
11250     return MemoryAllocateFlags( bit0 ) & bit1;
11251   }
11252 
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11253   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11254   {
11255     return MemoryAllocateFlags( bit0 ) ^ bit1;
11256   }
11257 
operator ~(MemoryAllocateFlagBits bits)11258   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11259   {
11260     return ~( MemoryAllocateFlags( bits ) );
11261   }
11262 
11263   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
11264 
to_string(MemoryAllocateFlags value)11265   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value  )
11266   {
11267 
11268     if ( !value ) return "{}";
11269     std::string result;
11270 
11271     if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | ";
11272     if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | ";
11273     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
11274     return "{ " + result.substr(0, result.size() - 3) + " }";
11275   }
11276 
11277 
11278   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
11279 
11280   template <> struct FlagTraits<MemoryHeapFlagBits>
11281   {
11282     enum : VkFlags
11283     {
11284       allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance)
11285     };
11286   };
11287 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11288   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11289   {
11290     return MemoryHeapFlags( bit0 ) | bit1;
11291   }
11292 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11293   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11294   {
11295     return MemoryHeapFlags( bit0 ) & bit1;
11296   }
11297 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11298   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11299   {
11300     return MemoryHeapFlags( bit0 ) ^ bit1;
11301   }
11302 
operator ~(MemoryHeapFlagBits bits)11303   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
11304   {
11305     return ~( MemoryHeapFlags( bits ) );
11306   }
11307 
to_string(MemoryHeapFlags value)11308   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value  )
11309   {
11310 
11311     if ( !value ) return "{}";
11312     std::string result;
11313 
11314     if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
11315     if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | ";
11316     return "{ " + result.substr(0, result.size() - 3) + " }";
11317   }
11318 
11319   enum class MemoryMapFlagBits : VkFlags
11320   {};
11321 
to_string(MemoryMapFlagBits)11322   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
11323   {
11324     return "(void)";
11325   }
11326 
11327   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
11328 
to_string(MemoryMapFlags)11329   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags  )
11330   {
11331 
11332     return "{}";
11333   }
11334 
11335 
11336   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
11337 
11338   template <> struct FlagTraits<MemoryPropertyFlagBits>
11339   {
11340     enum : VkFlags
11341     {
11342       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)
11343     };
11344   };
11345 
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11346   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11347   {
11348     return MemoryPropertyFlags( bit0 ) | bit1;
11349   }
11350 
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11351   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11352   {
11353     return MemoryPropertyFlags( bit0 ) & bit1;
11354   }
11355 
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11356   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11357   {
11358     return MemoryPropertyFlags( bit0 ) ^ bit1;
11359   }
11360 
operator ~(MemoryPropertyFlagBits bits)11361   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT
11362   {
11363     return ~( MemoryPropertyFlags( bits ) );
11364   }
11365 
to_string(MemoryPropertyFlags value)11366   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value  )
11367   {
11368 
11369     if ( !value ) return "{}";
11370     std::string result;
11371 
11372     if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
11373     if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | ";
11374     if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | ";
11375     if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
11376     if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
11377     if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | ";
11378     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | ";
11379     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | ";
11380     return "{ " + result.substr(0, result.size() - 3) + " }";
11381   }
11382 
11383 #ifdef VK_USE_PLATFORM_METAL_EXT
11384   enum class MetalSurfaceCreateFlagBitsEXT : VkFlags
11385   {};
11386 
to_string(MetalSurfaceCreateFlagBitsEXT)11387   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
11388   {
11389     return "(void)";
11390   }
11391 
11392   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
11393 
to_string(MetalSurfaceCreateFlagsEXT)11394   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT  )
11395   {
11396 
11397     return "{}";
11398   }
11399 #endif /*VK_USE_PLATFORM_METAL_EXT*/
11400 
11401 
11402   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
11403 
11404   template <> struct FlagTraits<PeerMemoryFeatureFlagBits>
11405   {
11406     enum : VkFlags
11407     {
11408       allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst)
11409     };
11410   };
11411 
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11412   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11413   {
11414     return PeerMemoryFeatureFlags( bit0 ) | bit1;
11415   }
11416 
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11417   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11418   {
11419     return PeerMemoryFeatureFlags( bit0 ) & bit1;
11420   }
11421 
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11422   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11423   {
11424     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
11425   }
11426 
operator ~(PeerMemoryFeatureFlagBits bits)11427   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11428   {
11429     return ~( PeerMemoryFeatureFlags( bits ) );
11430   }
11431 
11432   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
11433 
to_string(PeerMemoryFeatureFlags value)11434   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value  )
11435   {
11436 
11437     if ( !value ) return "{}";
11438     std::string result;
11439 
11440     if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | ";
11441     if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
11442     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
11443     if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | ";
11444     return "{ " + result.substr(0, result.size() - 3) + " }";
11445   }
11446 
11447 
11448   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
11449 
11450   template <> struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
11451   {
11452     enum : VkFlags
11453     {
11454       allFlags = VkFlags(PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting) | VkFlags(PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted)
11455     };
11456   };
11457 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)11458   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11459   {
11460     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
11461   }
11462 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)11463   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11464   {
11465     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
11466   }
11467 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)11468   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11469   {
11470     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
11471   }
11472 
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)11473   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11474   {
11475     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
11476   }
11477 
to_string(PerformanceCounterDescriptionFlagsKHR value)11478   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value  )
11479   {
11480 
11481     if ( !value ) return "{}";
11482     std::string result;
11483 
11484     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | ";
11485     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | ";
11486     return "{ " + result.substr(0, result.size() - 3) + " }";
11487   }
11488 
11489 
11490   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
11491 
11492   template <> struct FlagTraits<PipelineCacheCreateFlagBits>
11493   {
11494     enum : VkFlags
11495     {
11496       allFlags = VkFlags(PipelineCacheCreateFlagBits::eExternallySynchronizedEXT)
11497     };
11498   };
11499 
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)11500   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11501   {
11502     return PipelineCacheCreateFlags( bit0 ) | bit1;
11503   }
11504 
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)11505   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11506   {
11507     return PipelineCacheCreateFlags( bit0 ) & bit1;
11508   }
11509 
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)11510   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11511   {
11512     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
11513   }
11514 
operator ~(PipelineCacheCreateFlagBits bits)11515   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11516   {
11517     return ~( PipelineCacheCreateFlags( bits ) );
11518   }
11519 
to_string(PipelineCacheCreateFlags value)11520   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value  )
11521   {
11522 
11523     if ( !value ) return "{}";
11524     std::string result;
11525 
11526     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) result += "ExternallySynchronizedEXT | ";
11527     return "{ " + result.substr(0, result.size() - 3) + " }";
11528   }
11529 
11530 
11531   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
11532 
to_string(PipelineColorBlendStateCreateFlags)11533   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags  )
11534   {
11535 
11536     return "{}";
11537   }
11538 
11539 
11540   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
11541 
to_string(PipelineCompilerControlFlagsAMD)11542   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD  )
11543   {
11544 
11545     return "{}";
11546   }
11547 
11548   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags
11549   {};
11550 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)11551   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
11552   {
11553     return "(void)";
11554   }
11555 
11556   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
11557 
to_string(PipelineCoverageModulationStateCreateFlagsNV)11558   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV  )
11559   {
11560 
11561     return "{}";
11562   }
11563 
11564   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags
11565   {};
11566 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)11567   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
11568   {
11569     return "(void)";
11570   }
11571 
11572   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
11573 
to_string(PipelineCoverageReductionStateCreateFlagsNV)11574   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV  )
11575   {
11576 
11577     return "{}";
11578   }
11579 
11580   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags
11581   {};
11582 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)11583   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
11584   {
11585     return "(void)";
11586   }
11587 
11588   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
11589 
to_string(PipelineCoverageToColorStateCreateFlagsNV)11590   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV  )
11591   {
11592 
11593     return "{}";
11594   }
11595 
11596 
11597   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
11598 
11599   template <> struct FlagTraits<PipelineCreateFlagBits>
11600   {
11601     enum : VkFlags
11602     {
11603       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)
11604     };
11605   };
11606 
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)11607   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11608   {
11609     return PipelineCreateFlags( bit0 ) | bit1;
11610   }
11611 
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)11612   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11613   {
11614     return PipelineCreateFlags( bit0 ) & bit1;
11615   }
11616 
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)11617   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11618   {
11619     return PipelineCreateFlags( bit0 ) ^ bit1;
11620   }
11621 
operator ~(PipelineCreateFlagBits bits)11622   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11623   {
11624     return ~( PipelineCreateFlags( bits ) );
11625   }
11626 
to_string(PipelineCreateFlags value)11627   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value  )
11628   {
11629 
11630     if ( !value ) return "{}";
11631     std::string result;
11632 
11633     if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | ";
11634     if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | ";
11635     if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | ";
11636     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
11637     if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
11638     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) result += "RayTracingNoNullAnyHitShadersKHR | ";
11639     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) result += "RayTracingNoNullClosestHitShadersKHR | ";
11640     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) result += "RayTracingNoNullMissShadersKHR | ";
11641     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) result += "RayTracingNoNullIntersectionShadersKHR | ";
11642     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) result += "RayTracingSkipTrianglesKHR | ";
11643     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) result += "RayTracingSkipAabbsKHR | ";
11644     if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | ";
11645     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | ";
11646     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | ";
11647     if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) result += "IndirectBindableNV | ";
11648     if ( value & PipelineCreateFlagBits::eLibraryKHR ) result += "LibraryKHR | ";
11649     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) result += "FailOnPipelineCompileRequiredEXT | ";
11650     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) result += "EarlyReturnOnFailureEXT | ";
11651     return "{ " + result.substr(0, result.size() - 3) + " }";
11652   }
11653 
11654 
11655   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
11656 
11657   template <> struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
11658   {
11659     enum : VkFlags
11660     {
11661       allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration)
11662     };
11663   };
11664 
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)11665   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11666   {
11667     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
11668   }
11669 
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)11670   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11671   {
11672     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
11673   }
11674 
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)11675   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11676   {
11677     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
11678   }
11679 
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)11680   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
11681   {
11682     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
11683   }
11684 
to_string(PipelineCreationFeedbackFlagsEXT value)11685   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value  )
11686   {
11687 
11688     if ( !value ) return "{}";
11689     std::string result;
11690 
11691     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | ";
11692     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | ";
11693     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | ";
11694     return "{ " + result.substr(0, result.size() - 3) + " }";
11695   }
11696 
11697 
11698   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
11699 
to_string(PipelineDepthStencilStateCreateFlags)11700   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags  )
11701   {
11702 
11703     return "{}";
11704   }
11705 
11706   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags
11707   {};
11708 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)11709   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
11710   {
11711     return "(void)";
11712   }
11713 
11714   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
11715 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)11716   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT  )
11717   {
11718 
11719     return "{}";
11720   }
11721 
11722 
11723   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
11724 
to_string(PipelineDynamicStateCreateFlags)11725   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags  )
11726   {
11727 
11728     return "{}";
11729   }
11730 
11731 
11732   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
11733 
to_string(PipelineInputAssemblyStateCreateFlags)11734   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags  )
11735   {
11736 
11737     return "{}";
11738   }
11739 
11740 
11741   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
11742 
to_string(PipelineLayoutCreateFlags)11743   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags  )
11744   {
11745 
11746     return "{}";
11747   }
11748 
11749 
11750   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
11751 
to_string(PipelineMultisampleStateCreateFlags)11752   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags  )
11753   {
11754 
11755     return "{}";
11756   }
11757 
11758   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags
11759   {};
11760 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)11761   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
11762   {
11763     return "(void)";
11764   }
11765 
11766   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
11767 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)11768   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT  )
11769   {
11770 
11771     return "{}";
11772   }
11773 
11774   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags
11775   {};
11776 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)11777   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
11778   {
11779     return "(void)";
11780   }
11781 
11782   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
11783 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)11784   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT  )
11785   {
11786 
11787     return "{}";
11788   }
11789 
11790 
11791   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
11792 
to_string(PipelineRasterizationStateCreateFlags)11793   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags  )
11794   {
11795 
11796     return "{}";
11797   }
11798 
11799   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags
11800   {};
11801 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)11802   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
11803   {
11804     return "(void)";
11805   }
11806 
11807   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
11808 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)11809   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT  )
11810   {
11811 
11812     return "{}";
11813   }
11814 
11815 
11816   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
11817 
11818   template <> struct FlagTraits<PipelineShaderStageCreateFlagBits>
11819   {
11820     enum : VkFlags
11821     {
11822       allFlags = VkFlags(PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT) | VkFlags(PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT)
11823     };
11824   };
11825 
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)11826   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11827   {
11828     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
11829   }
11830 
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)11831   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11832   {
11833     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
11834   }
11835 
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)11836   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11837   {
11838     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
11839   }
11840 
operator ~(PipelineShaderStageCreateFlagBits bits)11841   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11842   {
11843     return ~( PipelineShaderStageCreateFlags( bits ) );
11844   }
11845 
to_string(PipelineShaderStageCreateFlags value)11846   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value  )
11847   {
11848 
11849     if ( !value ) return "{}";
11850     std::string result;
11851 
11852     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | ";
11853     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | ";
11854     return "{ " + result.substr(0, result.size() - 3) + " }";
11855   }
11856 
11857 
11858   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
11859 
11860   template <> struct FlagTraits<PipelineStageFlagBits>
11861   {
11862     enum : VkFlags
11863     {
11864       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)
11865     };
11866   };
11867 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)11868   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11869   {
11870     return PipelineStageFlags( bit0 ) | bit1;
11871   }
11872 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)11873   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11874   {
11875     return PipelineStageFlags( bit0 ) & bit1;
11876   }
11877 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)11878   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11879   {
11880     return PipelineStageFlags( bit0 ) ^ bit1;
11881   }
11882 
operator ~(PipelineStageFlagBits bits)11883   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
11884   {
11885     return ~( PipelineStageFlags( bits ) );
11886   }
11887 
to_string(PipelineStageFlags value)11888   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value  )
11889   {
11890 
11891     if ( !value ) return "{}";
11892     std::string result;
11893 
11894     if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | ";
11895     if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | ";
11896     if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | ";
11897     if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | ";
11898     if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | ";
11899     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | ";
11900     if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | ";
11901     if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | ";
11902     if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | ";
11903     if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | ";
11904     if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | ";
11905     if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | ";
11906     if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | ";
11907     if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | ";
11908     if ( value & PipelineStageFlagBits::eHost ) result += "Host | ";
11909     if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | ";
11910     if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | ";
11911     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | ";
11912     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
11913     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) result += "RayTracingShaderKHR | ";
11914     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) result += "AccelerationStructureBuildKHR | ";
11915     if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
11916     if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
11917     if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
11918     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | ";
11919     if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) result += "CommandPreprocessNV | ";
11920     return "{ " + result.substr(0, result.size() - 3) + " }";
11921   }
11922 
11923 
11924   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
11925 
to_string(PipelineTessellationStateCreateFlags)11926   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags  )
11927   {
11928 
11929     return "{}";
11930   }
11931 
11932 
11933   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
11934 
to_string(PipelineVertexInputStateCreateFlags)11935   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags  )
11936   {
11937 
11938     return "{}";
11939   }
11940 
11941 
11942   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
11943 
to_string(PipelineViewportStateCreateFlags)11944   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags  )
11945   {
11946 
11947     return "{}";
11948   }
11949 
11950   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags
11951   {};
11952 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)11953   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
11954   {
11955     return "(void)";
11956   }
11957 
11958   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
11959 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)11960   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV  )
11961   {
11962 
11963     return "{}";
11964   }
11965 
11966 
11967   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
11968 
to_string(PrivateDataSlotCreateFlagsEXT)11969   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT  )
11970   {
11971 
11972     return "{}";
11973   }
11974 
11975 
11976   using QueryControlFlags = Flags<QueryControlFlagBits>;
11977 
11978   template <> struct FlagTraits<QueryControlFlagBits>
11979   {
11980     enum : VkFlags
11981     {
11982       allFlags = VkFlags(QueryControlFlagBits::ePrecise)
11983     };
11984   };
11985 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)11986   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11987   {
11988     return QueryControlFlags( bit0 ) | bit1;
11989   }
11990 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)11991   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11992   {
11993     return QueryControlFlags( bit0 ) & bit1;
11994   }
11995 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)11996   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11997   {
11998     return QueryControlFlags( bit0 ) ^ bit1;
11999   }
12000 
operator ~(QueryControlFlagBits bits)12001   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
12002   {
12003     return ~( QueryControlFlags( bits ) );
12004   }
12005 
to_string(QueryControlFlags value)12006   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value  )
12007   {
12008 
12009     if ( !value ) return "{}";
12010     std::string result;
12011 
12012     if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | ";
12013     return "{ " + result.substr(0, result.size() - 3) + " }";
12014   }
12015 
12016 
12017   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
12018 
12019   template <> struct FlagTraits<QueryPipelineStatisticFlagBits>
12020   {
12021     enum : VkFlags
12022     {
12023       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)
12024     };
12025   };
12026 
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12027   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12028   {
12029     return QueryPipelineStatisticFlags( bit0 ) | bit1;
12030   }
12031 
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12032   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12033   {
12034     return QueryPipelineStatisticFlags( bit0 ) & bit1;
12035   }
12036 
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12037   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12038   {
12039     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
12040   }
12041 
operator ~(QueryPipelineStatisticFlagBits bits)12042   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT
12043   {
12044     return ~( QueryPipelineStatisticFlags( bits ) );
12045   }
12046 
to_string(QueryPipelineStatisticFlags value)12047   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value  )
12048   {
12049 
12050     if ( !value ) return "{}";
12051     std::string result;
12052 
12053     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | ";
12054     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | ";
12055     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | ";
12056     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | ";
12057     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | ";
12058     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | ";
12059     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | ";
12060     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | ";
12061     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
12062     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
12063     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | ";
12064     return "{ " + result.substr(0, result.size() - 3) + " }";
12065   }
12066 
12067 
12068   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
12069 
to_string(QueryPoolCreateFlags)12070   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags  )
12071   {
12072 
12073     return "{}";
12074   }
12075 
12076 
12077   using QueryResultFlags = Flags<QueryResultFlagBits>;
12078 
12079   template <> struct FlagTraits<QueryResultFlagBits>
12080   {
12081     enum : VkFlags
12082     {
12083       allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial)
12084     };
12085   };
12086 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12087   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12088   {
12089     return QueryResultFlags( bit0 ) | bit1;
12090   }
12091 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12093   {
12094     return QueryResultFlags( bit0 ) & bit1;
12095   }
12096 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12097   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12098   {
12099     return QueryResultFlags( bit0 ) ^ bit1;
12100   }
12101 
operator ~(QueryResultFlagBits bits)12102   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
12103   {
12104     return ~( QueryResultFlags( bits ) );
12105   }
12106 
to_string(QueryResultFlags value)12107   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value  )
12108   {
12109 
12110     if ( !value ) return "{}";
12111     std::string result;
12112 
12113     if ( value & QueryResultFlagBits::e64 ) result += "64 | ";
12114     if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
12115     if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
12116     if ( value & QueryResultFlagBits::ePartial ) result += "Partial | ";
12117     return "{ " + result.substr(0, result.size() - 3) + " }";
12118   }
12119 
12120 
12121   using QueueFlags = Flags<QueueFlagBits>;
12122 
12123   template <> struct FlagTraits<QueueFlagBits>
12124   {
12125     enum : VkFlags
12126     {
12127       allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected)
12128     };
12129   };
12130 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)12131   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12132   {
12133     return QueueFlags( bit0 ) | bit1;
12134   }
12135 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)12136   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12137   {
12138     return QueueFlags( bit0 ) & bit1;
12139   }
12140 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)12141   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12142   {
12143     return QueueFlags( bit0 ) ^ bit1;
12144   }
12145 
operator ~(QueueFlagBits bits)12146   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
12147   {
12148     return ~( QueueFlags( bits ) );
12149   }
12150 
to_string(QueueFlags value)12151   VULKAN_HPP_INLINE std::string to_string( QueueFlags value  )
12152   {
12153 
12154     if ( !value ) return "{}";
12155     std::string result;
12156 
12157     if ( value & QueueFlagBits::eGraphics ) result += "Graphics | ";
12158     if ( value & QueueFlagBits::eCompute ) result += "Compute | ";
12159     if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
12160     if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
12161     if ( value & QueueFlagBits::eProtected ) result += "Protected | ";
12162     return "{ " + result.substr(0, result.size() - 3) + " }";
12163   }
12164 
12165 
12166   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
12167 
12168   template <> struct FlagTraits<RenderPassCreateFlagBits>
12169   {
12170     enum : VkFlags
12171     {
12172       allFlags = VkFlags(RenderPassCreateFlagBits::eTransformQCOM)
12173     };
12174   };
12175 
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12176   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12177   {
12178     return RenderPassCreateFlags( bit0 ) | bit1;
12179   }
12180 
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12181   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12182   {
12183     return RenderPassCreateFlags( bit0 ) & bit1;
12184   }
12185 
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12186   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12187   {
12188     return RenderPassCreateFlags( bit0 ) ^ bit1;
12189   }
12190 
operator ~(RenderPassCreateFlagBits bits)12191   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12192   {
12193     return ~( RenderPassCreateFlags( bits ) );
12194   }
12195 
to_string(RenderPassCreateFlags value)12196   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value  )
12197   {
12198 
12199     if ( !value ) return "{}";
12200     std::string result;
12201 
12202     if ( value & RenderPassCreateFlagBits::eTransformQCOM ) result += "TransformQCOM | ";
12203     return "{ " + result.substr(0, result.size() - 3) + " }";
12204   }
12205 
12206 
12207   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
12208 
12209   template <> struct FlagTraits<ResolveModeFlagBits>
12210   {
12211     enum : VkFlags
12212     {
12213       allFlags = VkFlags(ResolveModeFlagBits::eNone) | VkFlags(ResolveModeFlagBits::eSampleZero) | VkFlags(ResolveModeFlagBits::eAverage) | VkFlags(ResolveModeFlagBits::eMin) | VkFlags(ResolveModeFlagBits::eMax)
12214     };
12215   };
12216 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12217   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12218   {
12219     return ResolveModeFlags( bit0 ) | bit1;
12220   }
12221 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12222   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12223   {
12224     return ResolveModeFlags( bit0 ) & bit1;
12225   }
12226 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12227   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12228   {
12229     return ResolveModeFlags( bit0 ) ^ bit1;
12230   }
12231 
operator ~(ResolveModeFlagBits bits)12232   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
12233   {
12234     return ~( ResolveModeFlags( bits ) );
12235   }
12236 
12237   using ResolveModeFlagsKHR = ResolveModeFlags;
12238 
to_string(ResolveModeFlags value)12239   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value  )
12240   {
12241 
12242     if ( !value ) return "{}";
12243     std::string result;
12244 
12245     if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | ";
12246     if ( value & ResolveModeFlagBits::eAverage ) result += "Average | ";
12247     if ( value & ResolveModeFlagBits::eMin ) result += "Min | ";
12248     if ( value & ResolveModeFlagBits::eMax ) result += "Max | ";
12249     return "{ " + result.substr(0, result.size() - 3) + " }";
12250   }
12251 
12252 
12253   using SampleCountFlags = Flags<SampleCountFlagBits>;
12254 
12255   template <> struct FlagTraits<SampleCountFlagBits>
12256   {
12257     enum : VkFlags
12258     {
12259       allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64)
12260     };
12261   };
12262 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12263   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12264   {
12265     return SampleCountFlags( bit0 ) | bit1;
12266   }
12267 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12268   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12269   {
12270     return SampleCountFlags( bit0 ) & bit1;
12271   }
12272 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12273   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12274   {
12275     return SampleCountFlags( bit0 ) ^ bit1;
12276   }
12277 
operator ~(SampleCountFlagBits bits)12278   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
12279   {
12280     return ~( SampleCountFlags( bits ) );
12281   }
12282 
to_string(SampleCountFlags value)12283   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value  )
12284   {
12285 
12286     if ( !value ) return "{}";
12287     std::string result;
12288 
12289     if ( value & SampleCountFlagBits::e1 ) result += "1 | ";
12290     if ( value & SampleCountFlagBits::e2 ) result += "2 | ";
12291     if ( value & SampleCountFlagBits::e4 ) result += "4 | ";
12292     if ( value & SampleCountFlagBits::e8 ) result += "8 | ";
12293     if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
12294     if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
12295     if ( value & SampleCountFlagBits::e64 ) result += "64 | ";
12296     return "{ " + result.substr(0, result.size() - 3) + " }";
12297   }
12298 
12299 
12300   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
12301 
12302   template <> struct FlagTraits<SamplerCreateFlagBits>
12303   {
12304     enum : VkFlags
12305     {
12306       allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT)
12307     };
12308   };
12309 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12310   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12311   {
12312     return SamplerCreateFlags( bit0 ) | bit1;
12313   }
12314 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12315   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12316   {
12317     return SamplerCreateFlags( bit0 ) & bit1;
12318   }
12319 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12320   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12321   {
12322     return SamplerCreateFlags( bit0 ) ^ bit1;
12323   }
12324 
operator ~(SamplerCreateFlagBits bits)12325   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12326   {
12327     return ~( SamplerCreateFlags( bits ) );
12328   }
12329 
to_string(SamplerCreateFlags value)12330   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value  )
12331   {
12332 
12333     if ( !value ) return "{}";
12334     std::string result;
12335 
12336     if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
12337     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | ";
12338     return "{ " + result.substr(0, result.size() - 3) + " }";
12339   }
12340 
12341 
12342   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
12343 
to_string(SemaphoreCreateFlags)12344   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags  )
12345   {
12346 
12347     return "{}";
12348   }
12349 
12350 
12351   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
12352 
12353   template <> struct FlagTraits<SemaphoreImportFlagBits>
12354   {
12355     enum : VkFlags
12356     {
12357       allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary)
12358     };
12359   };
12360 
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)12361   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12362   {
12363     return SemaphoreImportFlags( bit0 ) | bit1;
12364   }
12365 
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)12366   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12367   {
12368     return SemaphoreImportFlags( bit0 ) & bit1;
12369   }
12370 
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)12371   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12372   {
12373     return SemaphoreImportFlags( bit0 ) ^ bit1;
12374   }
12375 
operator ~(SemaphoreImportFlagBits bits)12376   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
12377   {
12378     return ~( SemaphoreImportFlags( bits ) );
12379   }
12380 
12381   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
12382 
to_string(SemaphoreImportFlags value)12383   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value  )
12384   {
12385 
12386     if ( !value ) return "{}";
12387     std::string result;
12388 
12389     if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | ";
12390     return "{ " + result.substr(0, result.size() - 3) + " }";
12391   }
12392 
12393 
12394   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
12395 
12396   template <> struct FlagTraits<SemaphoreWaitFlagBits>
12397   {
12398     enum : VkFlags
12399     {
12400       allFlags = VkFlags(SemaphoreWaitFlagBits::eAny)
12401     };
12402   };
12403 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)12404   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12405   {
12406     return SemaphoreWaitFlags( bit0 ) | bit1;
12407   }
12408 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)12409   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12410   {
12411     return SemaphoreWaitFlags( bit0 ) & bit1;
12412   }
12413 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)12414   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12415   {
12416     return SemaphoreWaitFlags( bit0 ) ^ bit1;
12417   }
12418 
operator ~(SemaphoreWaitFlagBits bits)12419   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
12420   {
12421     return ~( SemaphoreWaitFlags( bits ) );
12422   }
12423 
12424   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
12425 
to_string(SemaphoreWaitFlags value)12426   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value  )
12427   {
12428 
12429     if ( !value ) return "{}";
12430     std::string result;
12431 
12432     if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | ";
12433     return "{ " + result.substr(0, result.size() - 3) + " }";
12434   }
12435 
12436 
12437   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
12438 
to_string(ShaderCorePropertiesFlagsAMD)12439   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD  )
12440   {
12441 
12442     return "{}";
12443   }
12444 
12445 
12446   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
12447 
to_string(ShaderModuleCreateFlags)12448   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags  )
12449   {
12450 
12451     return "{}";
12452   }
12453 
12454 
12455   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
12456 
12457   template <> struct FlagTraits<ShaderStageFlagBits>
12458   {
12459     enum : VkFlags
12460     {
12461       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)
12462     };
12463   };
12464 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)12465   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12466   {
12467     return ShaderStageFlags( bit0 ) | bit1;
12468   }
12469 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)12470   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12471   {
12472     return ShaderStageFlags( bit0 ) & bit1;
12473   }
12474 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)12475   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12476   {
12477     return ShaderStageFlags( bit0 ) ^ bit1;
12478   }
12479 
operator ~(ShaderStageFlagBits bits)12480   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
12481   {
12482     return ~( ShaderStageFlags( bits ) );
12483   }
12484 
to_string(ShaderStageFlags value)12485   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value  )
12486   {
12487 
12488     if ( !value ) return "{}";
12489     std::string result;
12490 
12491     if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | ";
12492     if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | ";
12493     if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | ";
12494     if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | ";
12495     if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | ";
12496     if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | ";
12497     if ( value & ShaderStageFlagBits::eRaygenKHR ) result += "RaygenKHR | ";
12498     if ( value & ShaderStageFlagBits::eAnyHitKHR ) result += "AnyHitKHR | ";
12499     if ( value & ShaderStageFlagBits::eClosestHitKHR ) result += "ClosestHitKHR | ";
12500     if ( value & ShaderStageFlagBits::eMissKHR ) result += "MissKHR | ";
12501     if ( value & ShaderStageFlagBits::eIntersectionKHR ) result += "IntersectionKHR | ";
12502     if ( value & ShaderStageFlagBits::eCallableKHR ) result += "CallableKHR | ";
12503     if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
12504     if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | ";
12505     return "{ " + result.substr(0, result.size() - 3) + " }";
12506   }
12507 
12508 
12509   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
12510 
12511   template <> struct FlagTraits<SparseImageFormatFlagBits>
12512   {
12513     enum : VkFlags
12514     {
12515       allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize)
12516     };
12517   };
12518 
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)12519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12520   {
12521     return SparseImageFormatFlags( bit0 ) | bit1;
12522   }
12523 
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)12524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12525   {
12526     return SparseImageFormatFlags( bit0 ) & bit1;
12527   }
12528 
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)12529   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12530   {
12531     return SparseImageFormatFlags( bit0 ) ^ bit1;
12532   }
12533 
operator ~(SparseImageFormatFlagBits bits)12534   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT
12535   {
12536     return ~( SparseImageFormatFlags( bits ) );
12537   }
12538 
to_string(SparseImageFormatFlags value)12539   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value  )
12540   {
12541 
12542     if ( !value ) return "{}";
12543     std::string result;
12544 
12545     if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
12546     if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
12547     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | ";
12548     return "{ " + result.substr(0, result.size() - 3) + " }";
12549   }
12550 
12551 
12552   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
12553 
12554   template <> struct FlagTraits<SparseMemoryBindFlagBits>
12555   {
12556     enum : VkFlags
12557     {
12558       allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata)
12559     };
12560   };
12561 
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)12562   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12563   {
12564     return SparseMemoryBindFlags( bit0 ) | bit1;
12565   }
12566 
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)12567   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12568   {
12569     return SparseMemoryBindFlags( bit0 ) & bit1;
12570   }
12571 
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)12572   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12573   {
12574     return SparseMemoryBindFlags( bit0 ) ^ bit1;
12575   }
12576 
operator ~(SparseMemoryBindFlagBits bits)12577   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT
12578   {
12579     return ~( SparseMemoryBindFlags( bits ) );
12580   }
12581 
to_string(SparseMemoryBindFlags value)12582   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value  )
12583   {
12584 
12585     if ( !value ) return "{}";
12586     std::string result;
12587 
12588     if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | ";
12589     return "{ " + result.substr(0, result.size() - 3) + " }";
12590   }
12591 
12592 
12593   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
12594 
12595   template <> struct FlagTraits<StencilFaceFlagBits>
12596   {
12597     enum : VkFlags
12598     {
12599       allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eFrontAndBack)
12600     };
12601   };
12602 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)12603   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12604   {
12605     return StencilFaceFlags( bit0 ) | bit1;
12606   }
12607 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)12608   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12609   {
12610     return StencilFaceFlags( bit0 ) & bit1;
12611   }
12612 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)12613   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12614   {
12615     return StencilFaceFlags( bit0 ) ^ bit1;
12616   }
12617 
operator ~(StencilFaceFlagBits bits)12618   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
12619   {
12620     return ~( StencilFaceFlags( bits ) );
12621   }
12622 
to_string(StencilFaceFlags value)12623   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value  )
12624   {
12625 
12626     if ( !value ) return "{}";
12627     std::string result;
12628 
12629     if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
12630     if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
12631     return "{ " + result.substr(0, result.size() - 3) + " }";
12632   }
12633 
12634 #ifdef VK_USE_PLATFORM_GGP
12635   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags
12636   {};
12637 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)12638   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
12639   {
12640     return "(void)";
12641   }
12642 
12643   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
12644 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)12645   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP  )
12646   {
12647 
12648     return "{}";
12649   }
12650 #endif /*VK_USE_PLATFORM_GGP*/
12651 
12652 
12653   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
12654 
12655   template <> struct FlagTraits<SubgroupFeatureFlagBits>
12656   {
12657     enum : VkFlags
12658     {
12659       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)
12660     };
12661   };
12662 
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)12663   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12664   {
12665     return SubgroupFeatureFlags( bit0 ) | bit1;
12666   }
12667 
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)12668   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12669   {
12670     return SubgroupFeatureFlags( bit0 ) & bit1;
12671   }
12672 
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)12673   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12674   {
12675     return SubgroupFeatureFlags( bit0 ) ^ bit1;
12676   }
12677 
operator ~(SubgroupFeatureFlagBits bits)12678   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
12679   {
12680     return ~( SubgroupFeatureFlags( bits ) );
12681   }
12682 
to_string(SubgroupFeatureFlags value)12683   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value  )
12684   {
12685 
12686     if ( !value ) return "{}";
12687     std::string result;
12688 
12689     if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | ";
12690     if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | ";
12691     if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | ";
12692     if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | ";
12693     if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | ";
12694     if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | ";
12695     if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
12696     if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
12697     if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | ";
12698     return "{ " + result.substr(0, result.size() - 3) + " }";
12699   }
12700 
12701 
12702   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
12703 
12704   template <> struct FlagTraits<SubpassDescriptionFlagBits>
12705   {
12706     enum : VkFlags
12707     {
12708       allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX) | VkFlags(SubpassDescriptionFlagBits::eFragmentRegionQCOM) | VkFlags(SubpassDescriptionFlagBits::eShaderResolveQCOM)
12709     };
12710   };
12711 
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)12712   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12713   {
12714     return SubpassDescriptionFlags( bit0 ) | bit1;
12715   }
12716 
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)12717   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12718   {
12719     return SubpassDescriptionFlags( bit0 ) & bit1;
12720   }
12721 
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)12722   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12723   {
12724     return SubpassDescriptionFlags( bit0 ) ^ bit1;
12725   }
12726 
operator ~(SubpassDescriptionFlagBits bits)12727   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
12728   {
12729     return ~( SubpassDescriptionFlags( bits ) );
12730   }
12731 
to_string(SubpassDescriptionFlags value)12732   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value  )
12733   {
12734 
12735     if ( !value ) return "{}";
12736     std::string result;
12737 
12738     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
12739     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | ";
12740     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) result += "FragmentRegionQCOM | ";
12741     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) result += "ShaderResolveQCOM | ";
12742     return "{ " + result.substr(0, result.size() - 3) + " }";
12743   }
12744 
12745 
12746   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
12747 
12748   template <> struct FlagTraits<SurfaceCounterFlagBitsEXT>
12749   {
12750     enum : VkFlags
12751     {
12752       allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank)
12753     };
12754   };
12755 
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)12756   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12757   {
12758     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
12759   }
12760 
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)12761   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12762   {
12763     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
12764   }
12765 
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)12766   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12767   {
12768     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
12769   }
12770 
operator ~(SurfaceCounterFlagBitsEXT bits)12771   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12772   {
12773     return ~( SurfaceCounterFlagsEXT( bits ) );
12774   }
12775 
to_string(SurfaceCounterFlagsEXT value)12776   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value  )
12777   {
12778 
12779     if ( !value ) return "{}";
12780     std::string result;
12781 
12782     if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | ";
12783     return "{ " + result.substr(0, result.size() - 3) + " }";
12784   }
12785 
12786 
12787   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
12788 
12789   template <> struct FlagTraits<SurfaceTransformFlagBitsKHR>
12790   {
12791     enum : VkFlags
12792     {
12793       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)
12794     };
12795   };
12796 
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12797   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12798   {
12799     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
12800   }
12801 
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12802   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12803   {
12804     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
12805   }
12806 
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12807   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12808   {
12809     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
12810   }
12811 
operator ~(SurfaceTransformFlagBitsKHR bits)12812   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12813   {
12814     return ~( SurfaceTransformFlagsKHR( bits ) );
12815   }
12816 
to_string(SurfaceTransformFlagsKHR value)12817   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value  )
12818   {
12819 
12820     if ( !value ) return "{}";
12821     std::string result;
12822 
12823     if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | ";
12824     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | ";
12825     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | ";
12826     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | ";
12827     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | ";
12828     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | ";
12829     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
12830     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
12831     if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | ";
12832     return "{ " + result.substr(0, result.size() - 3) + " }";
12833   }
12834 
12835 
12836   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
12837 
12838   template <> struct FlagTraits<SwapchainCreateFlagBitsKHR>
12839   {
12840     enum : VkFlags
12841     {
12842       allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat)
12843     };
12844   };
12845 
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)12846   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12847   {
12848     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
12849   }
12850 
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)12851   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12852   {
12853     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
12854   }
12855 
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)12856   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12857   {
12858     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
12859   }
12860 
operator ~(SwapchainCreateFlagBitsKHR bits)12861   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12862   {
12863     return ~( SwapchainCreateFlagsKHR( bits ) );
12864   }
12865 
to_string(SwapchainCreateFlagsKHR value)12866   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value  )
12867   {
12868 
12869     if ( !value ) return "{}";
12870     std::string result;
12871 
12872     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
12873     if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
12874     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | ";
12875     return "{ " + result.substr(0, result.size() - 3) + " }";
12876   }
12877 
12878 
12879   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
12880 
12881   template <> struct FlagTraits<ToolPurposeFlagBitsEXT>
12882   {
12883     enum : VkFlags
12884     {
12885       allFlags = VkFlags(ToolPurposeFlagBitsEXT::eValidation) | VkFlags(ToolPurposeFlagBitsEXT::eProfiling) | VkFlags(ToolPurposeFlagBitsEXT::eTracing) | VkFlags(ToolPurposeFlagBitsEXT::eAdditionalFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eModifyingFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eDebugReporting) | VkFlags(ToolPurposeFlagBitsEXT::eDebugMarkers)
12886     };
12887   };
12888 
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)12889   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12890   {
12891     return ToolPurposeFlagsEXT( bit0 ) | bit1;
12892   }
12893 
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)12894   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12895   {
12896     return ToolPurposeFlagsEXT( bit0 ) & bit1;
12897   }
12898 
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)12899   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12900   {
12901     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
12902   }
12903 
operator ~(ToolPurposeFlagBitsEXT bits)12904   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12905   {
12906     return ~( ToolPurposeFlagsEXT( bits ) );
12907   }
12908 
to_string(ToolPurposeFlagsEXT value)12909   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value  )
12910   {
12911 
12912     if ( !value ) return "{}";
12913     std::string result;
12914 
12915     if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | ";
12916     if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | ";
12917     if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | ";
12918     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | ";
12919     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | ";
12920     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | ";
12921     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | ";
12922     return "{ " + result.substr(0, result.size() - 3) + " }";
12923   }
12924 
12925   enum class ValidationCacheCreateFlagBitsEXT : VkFlags
12926   {};
12927 
to_string(ValidationCacheCreateFlagBitsEXT)12928   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
12929   {
12930     return "(void)";
12931   }
12932 
12933   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
12934 
to_string(ValidationCacheCreateFlagsEXT)12935   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT  )
12936   {
12937 
12938     return "{}";
12939   }
12940 
12941 #ifdef VK_USE_PLATFORM_VI_NN
12942   enum class ViSurfaceCreateFlagBitsNN : VkFlags
12943   {};
12944 
to_string(ViSurfaceCreateFlagBitsNN)12945   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
12946   {
12947     return "(void)";
12948   }
12949 
12950   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
12951 
to_string(ViSurfaceCreateFlagsNN)12952   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN  )
12953   {
12954 
12955     return "{}";
12956   }
12957 #endif /*VK_USE_PLATFORM_VI_NN*/
12958 
12959 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
12960   enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags
12961   {};
12962 
to_string(WaylandSurfaceCreateFlagBitsKHR)12963   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
12964   {
12965     return "(void)";
12966   }
12967 
12968   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
12969 
to_string(WaylandSurfaceCreateFlagsKHR)12970   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR  )
12971   {
12972 
12973     return "{}";
12974   }
12975 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
12976 
12977 #ifdef VK_USE_PLATFORM_WIN32_KHR
12978   enum class Win32SurfaceCreateFlagBitsKHR : VkFlags
12979   {};
12980 
to_string(Win32SurfaceCreateFlagBitsKHR)12981   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
12982   {
12983     return "(void)";
12984   }
12985 
12986   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
12987 
to_string(Win32SurfaceCreateFlagsKHR)12988   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR  )
12989   {
12990 
12991     return "{}";
12992   }
12993 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12994 
12995 #ifdef VK_USE_PLATFORM_XCB_KHR
12996   enum class XcbSurfaceCreateFlagBitsKHR : VkFlags
12997   {};
12998 
to_string(XcbSurfaceCreateFlagBitsKHR)12999   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
13000   {
13001     return "(void)";
13002   }
13003 
13004   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
13005 
to_string(XcbSurfaceCreateFlagsKHR)13006   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR  )
13007   {
13008 
13009     return "{}";
13010   }
13011 #endif /*VK_USE_PLATFORM_XCB_KHR*/
13012 
13013 #ifdef VK_USE_PLATFORM_XLIB_KHR
13014   enum class XlibSurfaceCreateFlagBitsKHR : VkFlags
13015   {};
13016 
to_string(XlibSurfaceCreateFlagBitsKHR)13017   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
13018   {
13019     return "(void)";
13020   }
13021 
13022   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
13023 
to_string(XlibSurfaceCreateFlagsKHR)13024   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR  )
13025   {
13026 
13027     return "{}";
13028   }
13029 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
13030 } // namespace VULKAN_HPP_NAMESPACE
13031 
13032 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13033 namespace std
13034 {
13035   template <>
13036   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
13037   {};
13038 }
13039 #endif
13040 
13041 namespace VULKAN_HPP_NAMESPACE
13042 {
13043 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13044   class ErrorCategoryImpl : public std::error_category
13045   {
13046     public:
name() const13047     virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; }
message(int ev) const13048     virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }
13049   };
13050 
13051   class Error
13052   {
13053     public:
13054     Error() VULKAN_HPP_NOEXCEPT = default;
13055     Error(const Error&) VULKAN_HPP_NOEXCEPT = default;
13056     virtual ~Error() VULKAN_HPP_NOEXCEPT = default;
13057 
13058     virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0;
13059   };
13060 
13061   class LogicError : public Error, public std::logic_error
13062   {
13063     public:
LogicError(const std::string & what)13064     explicit LogicError( const std::string& what )
13065       : Error(), std::logic_error(what) {}
LogicError(char const * what)13066     explicit LogicError( char const * what )
13067       : Error(), std::logic_error(what) {}
13068 
what() const13069     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); }
13070   };
13071 
13072   class SystemError : public Error, public std::system_error
13073   {
13074     public:
SystemError(std::error_code ec)13075     SystemError( std::error_code ec )
13076       : Error(), std::system_error(ec) {}
SystemError(std::error_code ec,std::string const & what)13077     SystemError( std::error_code ec, std::string const& what )
13078       : Error(), std::system_error(ec, what) {}
SystemError(std::error_code ec,char const * what)13079     SystemError( std::error_code ec, char const * what )
13080       : Error(), std::system_error(ec, what) {}
SystemError(int ev,std::error_category const & ecat)13081     SystemError( int ev, std::error_category const& ecat )
13082       : Error(), std::system_error(ev, ecat) {}
SystemError(int ev,std::error_category const & ecat,std::string const & what)13083     SystemError( int ev, std::error_category const& ecat, std::string const& what)
13084       : Error(), std::system_error(ev, ecat, what) {}
SystemError(int ev,std::error_category const & ecat,char const * what)13085     SystemError( int ev, std::error_category const& ecat, char const * what)
13086       : Error(), std::system_error(ev, ecat, what) {}
13087 
what() const13088     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); }
13089   };
13090 
errorCategory()13091   VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT
13092   {
13093     static ErrorCategoryImpl instance;
13094     return instance;
13095   }
13096 
make_error_code(Result e)13097   VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT
13098   {
13099     return std::error_code(static_cast<int>(e), errorCategory());
13100   }
13101 
make_error_condition(Result e)13102   VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT
13103   {
13104     return std::error_condition(static_cast<int>(e), errorCategory());
13105   }
13106 
13107   class OutOfHostMemoryError : public SystemError
13108   {
13109   public:
OutOfHostMemoryError(std::string const & message)13110     OutOfHostMemoryError( std::string const& message )
13111       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
OutOfHostMemoryError(char const * message)13112     OutOfHostMemoryError( char const * message )
13113       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
13114   };
13115 
13116   class OutOfDeviceMemoryError : public SystemError
13117   {
13118   public:
OutOfDeviceMemoryError(std::string const & message)13119     OutOfDeviceMemoryError( std::string const& message )
13120       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
OutOfDeviceMemoryError(char const * message)13121     OutOfDeviceMemoryError( char const * message )
13122       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
13123   };
13124 
13125   class InitializationFailedError : public SystemError
13126   {
13127   public:
InitializationFailedError(std::string const & message)13128     InitializationFailedError( std::string const& message )
13129       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
InitializationFailedError(char const * message)13130     InitializationFailedError( char const * message )
13131       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
13132   };
13133 
13134   class DeviceLostError : public SystemError
13135   {
13136   public:
DeviceLostError(std::string const & message)13137     DeviceLostError( std::string const& message )
13138       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
DeviceLostError(char const * message)13139     DeviceLostError( char const * message )
13140       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
13141   };
13142 
13143   class MemoryMapFailedError : public SystemError
13144   {
13145   public:
MemoryMapFailedError(std::string const & message)13146     MemoryMapFailedError( std::string const& message )
13147       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
MemoryMapFailedError(char const * message)13148     MemoryMapFailedError( char const * message )
13149       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
13150   };
13151 
13152   class LayerNotPresentError : public SystemError
13153   {
13154   public:
LayerNotPresentError(std::string const & message)13155     LayerNotPresentError( std::string const& message )
13156       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
LayerNotPresentError(char const * message)13157     LayerNotPresentError( char const * message )
13158       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
13159   };
13160 
13161   class ExtensionNotPresentError : public SystemError
13162   {
13163   public:
ExtensionNotPresentError(std::string const & message)13164     ExtensionNotPresentError( std::string const& message )
13165       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
ExtensionNotPresentError(char const * message)13166     ExtensionNotPresentError( char const * message )
13167       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
13168   };
13169 
13170   class FeatureNotPresentError : public SystemError
13171   {
13172   public:
FeatureNotPresentError(std::string const & message)13173     FeatureNotPresentError( std::string const& message )
13174       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
FeatureNotPresentError(char const * message)13175     FeatureNotPresentError( char const * message )
13176       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
13177   };
13178 
13179   class IncompatibleDriverError : public SystemError
13180   {
13181   public:
IncompatibleDriverError(std::string const & message)13182     IncompatibleDriverError( std::string const& message )
13183       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
IncompatibleDriverError(char const * message)13184     IncompatibleDriverError( char const * message )
13185       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
13186   };
13187 
13188   class TooManyObjectsError : public SystemError
13189   {
13190   public:
TooManyObjectsError(std::string const & message)13191     TooManyObjectsError( std::string const& message )
13192       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
TooManyObjectsError(char const * message)13193     TooManyObjectsError( char const * message )
13194       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
13195   };
13196 
13197   class FormatNotSupportedError : public SystemError
13198   {
13199   public:
FormatNotSupportedError(std::string const & message)13200     FormatNotSupportedError( std::string const& message )
13201       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
FormatNotSupportedError(char const * message)13202     FormatNotSupportedError( char const * message )
13203       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
13204   };
13205 
13206   class FragmentedPoolError : public SystemError
13207   {
13208   public:
FragmentedPoolError(std::string const & message)13209     FragmentedPoolError( std::string const& message )
13210       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
FragmentedPoolError(char const * message)13211     FragmentedPoolError( char const * message )
13212       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
13213   };
13214 
13215   class UnknownError : public SystemError
13216   {
13217   public:
UnknownError(std::string const & message)13218     UnknownError( std::string const& message )
13219       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
UnknownError(char const * message)13220     UnknownError( char const * message )
13221       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
13222   };
13223 
13224   class OutOfPoolMemoryError : public SystemError
13225   {
13226   public:
OutOfPoolMemoryError(std::string const & message)13227     OutOfPoolMemoryError( std::string const& message )
13228       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
OutOfPoolMemoryError(char const * message)13229     OutOfPoolMemoryError( char const * message )
13230       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
13231   };
13232 
13233   class InvalidExternalHandleError : public SystemError
13234   {
13235   public:
InvalidExternalHandleError(std::string const & message)13236     InvalidExternalHandleError( std::string const& message )
13237       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
InvalidExternalHandleError(char const * message)13238     InvalidExternalHandleError( char const * message )
13239       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
13240   };
13241 
13242   class FragmentationError : public SystemError
13243   {
13244   public:
FragmentationError(std::string const & message)13245     FragmentationError( std::string const& message )
13246       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
FragmentationError(char const * message)13247     FragmentationError( char const * message )
13248       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
13249   };
13250 
13251   class InvalidOpaqueCaptureAddressError : public SystemError
13252   {
13253   public:
InvalidOpaqueCaptureAddressError(std::string const & message)13254     InvalidOpaqueCaptureAddressError( std::string const& message )
13255       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
InvalidOpaqueCaptureAddressError(char const * message)13256     InvalidOpaqueCaptureAddressError( char const * message )
13257       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
13258   };
13259 
13260   class SurfaceLostKHRError : public SystemError
13261   {
13262   public:
SurfaceLostKHRError(std::string const & message)13263     SurfaceLostKHRError( std::string const& message )
13264       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
SurfaceLostKHRError(char const * message)13265     SurfaceLostKHRError( char const * message )
13266       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
13267   };
13268 
13269   class NativeWindowInUseKHRError : public SystemError
13270   {
13271   public:
NativeWindowInUseKHRError(std::string const & message)13272     NativeWindowInUseKHRError( std::string const& message )
13273       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
NativeWindowInUseKHRError(char const * message)13274     NativeWindowInUseKHRError( char const * message )
13275       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
13276   };
13277 
13278   class OutOfDateKHRError : public SystemError
13279   {
13280   public:
OutOfDateKHRError(std::string const & message)13281     OutOfDateKHRError( std::string const& message )
13282       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
OutOfDateKHRError(char const * message)13283     OutOfDateKHRError( char const * message )
13284       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
13285   };
13286 
13287   class IncompatibleDisplayKHRError : public SystemError
13288   {
13289   public:
IncompatibleDisplayKHRError(std::string const & message)13290     IncompatibleDisplayKHRError( std::string const& message )
13291       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
IncompatibleDisplayKHRError(char const * message)13292     IncompatibleDisplayKHRError( char const * message )
13293       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
13294   };
13295 
13296   class ValidationFailedEXTError : public SystemError
13297   {
13298   public:
ValidationFailedEXTError(std::string const & message)13299     ValidationFailedEXTError( std::string const& message )
13300       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
ValidationFailedEXTError(char const * message)13301     ValidationFailedEXTError( char const * message )
13302       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
13303   };
13304 
13305   class InvalidShaderNVError : public SystemError
13306   {
13307   public:
InvalidShaderNVError(std::string const & message)13308     InvalidShaderNVError( std::string const& message )
13309       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
InvalidShaderNVError(char const * message)13310     InvalidShaderNVError( char const * message )
13311       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
13312   };
13313 
13314   class IncompatibleVersionKHRError : public SystemError
13315   {
13316   public:
IncompatibleVersionKHRError(std::string const & message)13317     IncompatibleVersionKHRError( std::string const& message )
13318       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
IncompatibleVersionKHRError(char const * message)13319     IncompatibleVersionKHRError( char const * message )
13320       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
13321   };
13322 
13323   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
13324   {
13325   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)13326     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message )
13327       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)13328     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
13329       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
13330   };
13331 
13332   class NotPermittedEXTError : public SystemError
13333   {
13334   public:
NotPermittedEXTError(std::string const & message)13335     NotPermittedEXTError( std::string const& message )
13336       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
NotPermittedEXTError(char const * message)13337     NotPermittedEXTError( char const * message )
13338       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
13339   };
13340 
13341   class FullScreenExclusiveModeLostEXTError : public SystemError
13342   {
13343   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)13344     FullScreenExclusiveModeLostEXTError( std::string const& message )
13345       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
FullScreenExclusiveModeLostEXTError(char const * message)13346     FullScreenExclusiveModeLostEXTError( char const * message )
13347       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
13348   };
13349 
13350 
throwResultException(Result result,char const * message)13351   [[noreturn]] static void throwResultException( Result result, char const * message )
13352   {
13353     switch ( result )
13354     {
13355       case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
13356       case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
13357       case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
13358       case Result::eErrorDeviceLost: throw DeviceLostError( message );
13359       case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
13360       case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
13361       case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
13362       case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
13363       case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
13364       case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
13365       case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
13366       case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
13367       case Result::eErrorUnknown: throw UnknownError( message );
13368       case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
13369       case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
13370       case Result::eErrorFragmentation: throw FragmentationError( message );
13371       case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
13372       case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
13373       case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
13374       case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
13375       case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
13376       case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
13377       case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
13378       case Result::eErrorIncompatibleVersionKHR: throw IncompatibleVersionKHRError( message );
13379       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
13380       case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
13381       case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
13382       default: throw SystemError( make_error_code( result ) );
13383     }
13384   }
13385 #endif
13386 
ignore(T const &)13387   template <typename T> void ignore(T const&) VULKAN_HPP_NOEXCEPT {}
13388 
13389   template <typename T>
13390   struct ResultValue
13391   {
13392 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue13393     ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v)))
13394 #else
13395     ResultValue( Result r, T & v )
13396 #endif
13397       : result( r )
13398       , value( v )
13399     {}
13400 
13401 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue13402     ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v))))
13403 #else
13404     ResultValue( Result r, T && v )
13405 #endif
13406       : result( r )
13407       , value( std::move( v ) )
13408     {}
13409 
13410     Result  result;
13411     T       value;
13412 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue13413     operator std::tuple<Result&, T&>() VULKAN_HPP_NOEXCEPT { return std::tuple<Result&, T&>(result, value); }
13414 
13415 #if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
operator T const&VULKAN_HPP_NAMESPACE::ResultValue13416     operator T const& () const VULKAN_HPP_NOEXCEPT
13417     {
13418       return value;
13419     }
13420 
operator T&VULKAN_HPP_NAMESPACE::ResultValue13421     operator T& () VULKAN_HPP_NOEXCEPT
13422     {
13423       return value;
13424     }
13425 #endif
13426   };
13427 
13428 #if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
13429   template <typename Type, typename Dispatch>
13430   struct ResultValue<UniqueHandle<Type,Dispatch>>
13431   {
13432 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue13433     ResultValue(Result r, UniqueHandle<Type, Dispatch> & v) VULKAN_HPP_NOEXCEPT
13434 #else
13435     ResultValue(Result r, UniqueHandle<Type, Dispatch>& v)
13436 #endif
13437       : result(r)
13438       , value(v)
13439     {}
13440 
13441 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue13442     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v) VULKAN_HPP_NOEXCEPT
13443 #else
13444     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v)
13445 #endif
13446       : result(r)
13447       , value(std::move(v))
13448     {}
13449 
13450     Result                        result;
13451     UniqueHandle<Type, Dispatch>  value;
13452 
operator std::tuple<Result&,UniqueHandle<Type,Dispatch>&>VULKAN_HPP_NAMESPACE::ResultValue13453     operator std::tuple<Result&, UniqueHandle<Type, Dispatch>&>() VULKAN_HPP_NOEXCEPT { return std::tuple<Result&, UniqueHandle<Type, Dispatch>&>(result, value); }
13454 
operator UniqueHandle<Type,Dispatch>VULKAN_HPP_NAMESPACE::ResultValue13455     operator UniqueHandle<Type, Dispatch>() VULKAN_HPP_NOEXCEPT
13456     {
13457       return std::move(value);
13458     }
13459   };
13460 #endif
13461 
13462   template <typename T>
13463   struct ResultValueType
13464   {
13465 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13466     typedef ResultValue<T>  type;
13467 #else
13468     typedef T               type;
13469 #endif
13470   };
13471 
13472   template <>
13473   struct ResultValueType<void>
13474   {
13475 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13476     typedef Result type;
13477 #else
13478     typedef void   type;
13479 #endif
13480   };
13481 
createResultValue(Result result,char const * message)13482   VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
13483   {
13484 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13485     ignore(message);
13486     VULKAN_HPP_ASSERT( result == Result::eSuccess );
13487     return result;
13488 #else
13489     if ( result != Result::eSuccess )
13490     {
13491       throwResultException( result, message );
13492     }
13493 #endif
13494   }
13495 
13496   template <typename T>
createResultValue(Result result,T & data,char const * message)13497   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
13498   {
13499 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13500     ignore(message);
13501     VULKAN_HPP_ASSERT( result == Result::eSuccess );
13502     return ResultValue<T>( result, std::move( data ) );
13503 #else
13504     if ( result != Result::eSuccess )
13505     {
13506       throwResultException( result, message );
13507     }
13508     return std::move( data );
13509 #endif
13510   }
13511 
createResultValue(Result result,char const * message,std::initializer_list<Result> successCodes)13512   VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list<Result> successCodes )
13513   {
13514 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13515     ignore(message);
13516     VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
13517 #else
13518     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
13519     {
13520       throwResultException( result, message );
13521     }
13522 #endif
13523     return result;
13524   }
13525 
13526   template <typename T>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes)13527   VULKAN_HPP_INLINE ResultValue<T> createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
13528   {
13529 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13530     ignore(message);
13531     VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
13532 #else
13533     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
13534     {
13535       throwResultException( result, message );
13536     }
13537 #endif
13538     return ResultValue<T>( result, data );
13539   }
13540 
13541 #ifndef VULKAN_HPP_NO_SMART_HANDLE
13542   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,typename UniqueHandleTraits<T,D>::deleter const & deleter)13543   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter )
13544   {
13545 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13546     ignore(message);
13547     VULKAN_HPP_ASSERT( result == Result::eSuccess );
13548     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
13549 #else
13550     if ( result != Result::eSuccess )
13551     {
13552       throwResultException( result, message );
13553     }
13554     return UniqueHandle<T,D>(data, deleter);
13555 #endif
13556   }
13557 
13558   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes,typename UniqueHandleTraits<T,D>::deleter const & deleter)13559   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 )
13560   {
13561 #ifdef VULKAN_HPP_NO_EXCEPTIONS
13562     ignore(message);
13563     VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
13564     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
13565 #else
13566     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
13567     {
13568       throwResultException( result, message );
13569     }
13570     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
13571 #endif
13572   }
13573 #endif
13574 
13575   struct AabbPositionsKHR;
13576   using AabbPositionsNV = AabbPositionsKHR;
13577 #ifdef VK_ENABLE_BETA_EXTENSIONS
13578   struct AccelerationStructureBuildGeometryInfoKHR;
13579 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13580 #ifdef VK_ENABLE_BETA_EXTENSIONS
13581   struct AccelerationStructureBuildOffsetInfoKHR;
13582 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13583 #ifdef VK_ENABLE_BETA_EXTENSIONS
13584   struct AccelerationStructureCreateGeometryTypeInfoKHR;
13585 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13586 #ifdef VK_ENABLE_BETA_EXTENSIONS
13587   struct AccelerationStructureCreateInfoKHR;
13588 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13589   struct AccelerationStructureCreateInfoNV;
13590 #ifdef VK_ENABLE_BETA_EXTENSIONS
13591   struct AccelerationStructureDeviceAddressInfoKHR;
13592 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13593 #ifdef VK_ENABLE_BETA_EXTENSIONS
13594   struct AccelerationStructureGeometryAabbsDataKHR;
13595 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13596 #ifdef VK_ENABLE_BETA_EXTENSIONS
13597   union AccelerationStructureGeometryDataKHR;
13598 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13599 #ifdef VK_ENABLE_BETA_EXTENSIONS
13600   struct AccelerationStructureGeometryInstancesDataKHR;
13601 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13602 #ifdef VK_ENABLE_BETA_EXTENSIONS
13603   struct AccelerationStructureGeometryKHR;
13604 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13605 #ifdef VK_ENABLE_BETA_EXTENSIONS
13606   struct AccelerationStructureGeometryTrianglesDataKHR;
13607 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13608   struct AccelerationStructureInfoNV;
13609   struct AccelerationStructureInstanceKHR;
13610   using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
13611 #ifdef VK_ENABLE_BETA_EXTENSIONS
13612   struct AccelerationStructureMemoryRequirementsInfoKHR;
13613 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13614   struct AccelerationStructureMemoryRequirementsInfoNV;
13615 #ifdef VK_ENABLE_BETA_EXTENSIONS
13616   struct AccelerationStructureVersionKHR;
13617 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13618   struct AcquireNextImageInfoKHR;
13619   struct AcquireProfilingLockInfoKHR;
13620   struct AllocationCallbacks;
13621 #ifdef VK_USE_PLATFORM_ANDROID_KHR
13622   struct AndroidHardwareBufferFormatPropertiesANDROID;
13623 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13624 #ifdef VK_USE_PLATFORM_ANDROID_KHR
13625   struct AndroidHardwareBufferPropertiesANDROID;
13626 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13627 #ifdef VK_USE_PLATFORM_ANDROID_KHR
13628   struct AndroidHardwareBufferUsageANDROID;
13629 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13630 #ifdef VK_USE_PLATFORM_ANDROID_KHR
13631   struct AndroidSurfaceCreateInfoKHR;
13632 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13633   struct ApplicationInfo;
13634   struct AttachmentDescription;
13635   struct AttachmentDescription2;
13636   using AttachmentDescription2KHR = AttachmentDescription2;
13637   struct AttachmentDescriptionStencilLayout;
13638   using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
13639   struct AttachmentReference;
13640   struct AttachmentReference2;
13641   using AttachmentReference2KHR = AttachmentReference2;
13642   struct AttachmentReferenceStencilLayout;
13643   using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
13644   struct AttachmentSampleLocationsEXT;
13645   struct BaseInStructure;
13646   struct BaseOutStructure;
13647   struct BindAccelerationStructureMemoryInfoKHR;
13648   using BindAccelerationStructureMemoryInfoNV = BindAccelerationStructureMemoryInfoKHR;
13649   struct BindBufferMemoryDeviceGroupInfo;
13650   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
13651   struct BindBufferMemoryInfo;
13652   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
13653   struct BindImageMemoryDeviceGroupInfo;
13654   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
13655   struct BindImageMemoryInfo;
13656   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
13657   struct BindImageMemorySwapchainInfoKHR;
13658   struct BindImagePlaneMemoryInfo;
13659   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
13660   struct BindIndexBufferIndirectCommandNV;
13661   struct BindShaderGroupIndirectCommandNV;
13662   struct BindSparseInfo;
13663   struct BindVertexBufferIndirectCommandNV;
13664   struct BufferCopy;
13665   struct BufferCreateInfo;
13666   struct BufferDeviceAddressCreateInfoEXT;
13667   struct BufferDeviceAddressInfo;
13668   using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
13669   using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
13670   struct BufferImageCopy;
13671   struct BufferMemoryBarrier;
13672   struct BufferMemoryRequirementsInfo2;
13673   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
13674   struct BufferOpaqueCaptureAddressCreateInfo;
13675   using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
13676   struct BufferViewCreateInfo;
13677   struct CalibratedTimestampInfoEXT;
13678   struct CheckpointDataNV;
13679   struct ClearAttachment;
13680   union ClearColorValue;
13681   struct ClearDepthStencilValue;
13682   struct ClearRect;
13683   union ClearValue;
13684   struct CoarseSampleLocationNV;
13685   struct CoarseSampleOrderCustomNV;
13686   struct CommandBufferAllocateInfo;
13687   struct CommandBufferBeginInfo;
13688   struct CommandBufferInheritanceConditionalRenderingInfoEXT;
13689   struct CommandBufferInheritanceInfo;
13690   struct CommandBufferInheritanceRenderPassTransformInfoQCOM;
13691   struct CommandPoolCreateInfo;
13692   struct ComponentMapping;
13693   struct ComputePipelineCreateInfo;
13694   struct ConditionalRenderingBeginInfoEXT;
13695   struct ConformanceVersion;
13696   using ConformanceVersionKHR = ConformanceVersion;
13697   struct CooperativeMatrixPropertiesNV;
13698 #ifdef VK_ENABLE_BETA_EXTENSIONS
13699   struct CopyAccelerationStructureInfoKHR;
13700 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13701 #ifdef VK_ENABLE_BETA_EXTENSIONS
13702   struct CopyAccelerationStructureToMemoryInfoKHR;
13703 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13704   struct CopyDescriptorSet;
13705 #ifdef VK_ENABLE_BETA_EXTENSIONS
13706   struct CopyMemoryToAccelerationStructureInfoKHR;
13707 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13708 #ifdef VK_USE_PLATFORM_WIN32_KHR
13709   struct D3D12FenceSubmitInfoKHR;
13710 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13711   struct DebugMarkerMarkerInfoEXT;
13712   struct DebugMarkerObjectNameInfoEXT;
13713   struct DebugMarkerObjectTagInfoEXT;
13714   struct DebugReportCallbackCreateInfoEXT;
13715   struct DebugUtilsLabelEXT;
13716   struct DebugUtilsMessengerCallbackDataEXT;
13717   struct DebugUtilsMessengerCreateInfoEXT;
13718   struct DebugUtilsObjectNameInfoEXT;
13719   struct DebugUtilsObjectTagInfoEXT;
13720   struct DedicatedAllocationBufferCreateInfoNV;
13721   struct DedicatedAllocationImageCreateInfoNV;
13722   struct DedicatedAllocationMemoryAllocateInfoNV;
13723 #ifdef VK_ENABLE_BETA_EXTENSIONS
13724   struct DeferredOperationInfoKHR;
13725 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13726   struct DescriptorBufferInfo;
13727   struct DescriptorImageInfo;
13728   struct DescriptorPoolCreateInfo;
13729   struct DescriptorPoolInlineUniformBlockCreateInfoEXT;
13730   struct DescriptorPoolSize;
13731   struct DescriptorSetAllocateInfo;
13732   struct DescriptorSetLayoutBinding;
13733   struct DescriptorSetLayoutBindingFlagsCreateInfo;
13734   using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
13735   struct DescriptorSetLayoutCreateInfo;
13736   struct DescriptorSetLayoutSupport;
13737   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
13738   struct DescriptorSetVariableDescriptorCountAllocateInfo;
13739   using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
13740   struct DescriptorSetVariableDescriptorCountLayoutSupport;
13741   using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
13742   struct DescriptorUpdateTemplateCreateInfo;
13743   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
13744   struct DescriptorUpdateTemplateEntry;
13745   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
13746   struct DeviceCreateInfo;
13747   struct DeviceDiagnosticsConfigCreateInfoNV;
13748   struct DeviceEventInfoEXT;
13749   struct DeviceGroupBindSparseInfo;
13750   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
13751   struct DeviceGroupCommandBufferBeginInfo;
13752   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
13753   struct DeviceGroupDeviceCreateInfo;
13754   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
13755   struct DeviceGroupPresentCapabilitiesKHR;
13756   struct DeviceGroupPresentInfoKHR;
13757   struct DeviceGroupRenderPassBeginInfo;
13758   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
13759   struct DeviceGroupSubmitInfo;
13760   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
13761   struct DeviceGroupSwapchainCreateInfoKHR;
13762   struct DeviceMemoryOpaqueCaptureAddressInfo;
13763   using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
13764   struct DeviceMemoryOverallocationCreateInfoAMD;
13765 #ifdef VK_ENABLE_BETA_EXTENSIONS
13766   union DeviceOrHostAddressConstKHR;
13767 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13768 #ifdef VK_ENABLE_BETA_EXTENSIONS
13769   union DeviceOrHostAddressKHR;
13770 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13771   struct DevicePrivateDataCreateInfoEXT;
13772   struct DeviceQueueCreateInfo;
13773   struct DeviceQueueGlobalPriorityCreateInfoEXT;
13774   struct DeviceQueueInfo2;
13775   struct DispatchIndirectCommand;
13776   struct DisplayEventInfoEXT;
13777   struct DisplayModeCreateInfoKHR;
13778   struct DisplayModeParametersKHR;
13779   struct DisplayModeProperties2KHR;
13780   struct DisplayModePropertiesKHR;
13781   struct DisplayNativeHdrSurfaceCapabilitiesAMD;
13782   struct DisplayPlaneCapabilities2KHR;
13783   struct DisplayPlaneCapabilitiesKHR;
13784   struct DisplayPlaneInfo2KHR;
13785   struct DisplayPlaneProperties2KHR;
13786   struct DisplayPlanePropertiesKHR;
13787   struct DisplayPowerInfoEXT;
13788   struct DisplayPresentInfoKHR;
13789   struct DisplayProperties2KHR;
13790   struct DisplayPropertiesKHR;
13791   struct DisplaySurfaceCreateInfoKHR;
13792   struct DrawIndexedIndirectCommand;
13793   struct DrawIndirectCommand;
13794   struct DrawMeshTasksIndirectCommandNV;
13795   struct DrmFormatModifierPropertiesEXT;
13796   struct DrmFormatModifierPropertiesListEXT;
13797   struct EventCreateInfo;
13798   struct ExportFenceCreateInfo;
13799   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
13800 #ifdef VK_USE_PLATFORM_WIN32_KHR
13801   struct ExportFenceWin32HandleInfoKHR;
13802 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13803   struct ExportMemoryAllocateInfo;
13804   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
13805   struct ExportMemoryAllocateInfoNV;
13806 #ifdef VK_USE_PLATFORM_WIN32_KHR
13807   struct ExportMemoryWin32HandleInfoKHR;
13808 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13809 #ifdef VK_USE_PLATFORM_WIN32_KHR
13810   struct ExportMemoryWin32HandleInfoNV;
13811 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13812   struct ExportSemaphoreCreateInfo;
13813   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
13814 #ifdef VK_USE_PLATFORM_WIN32_KHR
13815   struct ExportSemaphoreWin32HandleInfoKHR;
13816 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13817   struct ExtensionProperties;
13818   struct Extent2D;
13819   struct Extent3D;
13820   struct ExternalBufferProperties;
13821   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
13822   struct ExternalFenceProperties;
13823   using ExternalFencePropertiesKHR = ExternalFenceProperties;
13824 #ifdef VK_USE_PLATFORM_ANDROID_KHR
13825   struct ExternalFormatANDROID;
13826 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13827   struct ExternalImageFormatProperties;
13828   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
13829   struct ExternalImageFormatPropertiesNV;
13830   struct ExternalMemoryBufferCreateInfo;
13831   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
13832   struct ExternalMemoryImageCreateInfo;
13833   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
13834   struct ExternalMemoryImageCreateInfoNV;
13835   struct ExternalMemoryProperties;
13836   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
13837   struct ExternalSemaphoreProperties;
13838   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
13839   struct FenceCreateInfo;
13840   struct FenceGetFdInfoKHR;
13841 #ifdef VK_USE_PLATFORM_WIN32_KHR
13842   struct FenceGetWin32HandleInfoKHR;
13843 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13844   struct FilterCubicImageViewImageFormatPropertiesEXT;
13845   struct FormatProperties;
13846   struct FormatProperties2;
13847   using FormatProperties2KHR = FormatProperties2;
13848   struct FramebufferAttachmentImageInfo;
13849   using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
13850   struct FramebufferAttachmentsCreateInfo;
13851   using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
13852   struct FramebufferCreateInfo;
13853   struct FramebufferMixedSamplesCombinationNV;
13854   struct GeneratedCommandsInfoNV;
13855   struct GeneratedCommandsMemoryRequirementsInfoNV;
13856   struct GeometryAABBNV;
13857   struct GeometryDataNV;
13858   struct GeometryNV;
13859   struct GeometryTrianglesNV;
13860   struct GraphicsPipelineCreateInfo;
13861   struct GraphicsPipelineShaderGroupsCreateInfoNV;
13862   struct GraphicsShaderGroupCreateInfoNV;
13863   struct HdrMetadataEXT;
13864   struct HeadlessSurfaceCreateInfoEXT;
13865 #ifdef VK_USE_PLATFORM_IOS_MVK
13866   struct IOSSurfaceCreateInfoMVK;
13867 #endif /*VK_USE_PLATFORM_IOS_MVK*/
13868   struct ImageBlit;
13869   struct ImageCopy;
13870   struct ImageCreateInfo;
13871   struct ImageDrmFormatModifierExplicitCreateInfoEXT;
13872   struct ImageDrmFormatModifierListCreateInfoEXT;
13873   struct ImageDrmFormatModifierPropertiesEXT;
13874   struct ImageFormatListCreateInfo;
13875   using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
13876   struct ImageFormatProperties;
13877   struct ImageFormatProperties2;
13878   using ImageFormatProperties2KHR = ImageFormatProperties2;
13879   struct ImageMemoryBarrier;
13880   struct ImageMemoryRequirementsInfo2;
13881   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
13882 #ifdef VK_USE_PLATFORM_FUCHSIA
13883   struct ImagePipeSurfaceCreateInfoFUCHSIA;
13884 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13885   struct ImagePlaneMemoryRequirementsInfo;
13886   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
13887   struct ImageResolve;
13888   struct ImageSparseMemoryRequirementsInfo2;
13889   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
13890   struct ImageStencilUsageCreateInfo;
13891   using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
13892   struct ImageSubresource;
13893   struct ImageSubresourceLayers;
13894   struct ImageSubresourceRange;
13895   struct ImageSwapchainCreateInfoKHR;
13896   struct ImageViewASTCDecodeModeEXT;
13897   struct ImageViewAddressPropertiesNVX;
13898   struct ImageViewCreateInfo;
13899   struct ImageViewHandleInfoNVX;
13900   struct ImageViewUsageCreateInfo;
13901   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
13902 #ifdef VK_USE_PLATFORM_ANDROID_KHR
13903   struct ImportAndroidHardwareBufferInfoANDROID;
13904 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13905   struct ImportFenceFdInfoKHR;
13906 #ifdef VK_USE_PLATFORM_WIN32_KHR
13907   struct ImportFenceWin32HandleInfoKHR;
13908 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13909   struct ImportMemoryFdInfoKHR;
13910   struct ImportMemoryHostPointerInfoEXT;
13911 #ifdef VK_USE_PLATFORM_WIN32_KHR
13912   struct ImportMemoryWin32HandleInfoKHR;
13913 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13914 #ifdef VK_USE_PLATFORM_WIN32_KHR
13915   struct ImportMemoryWin32HandleInfoNV;
13916 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13917   struct ImportSemaphoreFdInfoKHR;
13918 #ifdef VK_USE_PLATFORM_WIN32_KHR
13919   struct ImportSemaphoreWin32HandleInfoKHR;
13920 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13921   struct IndirectCommandsLayoutCreateInfoNV;
13922   struct IndirectCommandsLayoutTokenNV;
13923   struct IndirectCommandsStreamNV;
13924   struct InitializePerformanceApiInfoINTEL;
13925   struct InputAttachmentAspectReference;
13926   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
13927   struct InstanceCreateInfo;
13928   struct LayerProperties;
13929 #ifdef VK_USE_PLATFORM_MACOS_MVK
13930   struct MacOSSurfaceCreateInfoMVK;
13931 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
13932   struct MappedMemoryRange;
13933   struct MemoryAllocateFlagsInfo;
13934   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
13935   struct MemoryAllocateInfo;
13936   struct MemoryBarrier;
13937   struct MemoryDedicatedAllocateInfo;
13938   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
13939   struct MemoryDedicatedRequirements;
13940   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
13941   struct MemoryFdPropertiesKHR;
13942 #ifdef VK_USE_PLATFORM_ANDROID_KHR
13943   struct MemoryGetAndroidHardwareBufferInfoANDROID;
13944 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13945   struct MemoryGetFdInfoKHR;
13946 #ifdef VK_USE_PLATFORM_WIN32_KHR
13947   struct MemoryGetWin32HandleInfoKHR;
13948 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13949   struct MemoryHeap;
13950   struct MemoryHostPointerPropertiesEXT;
13951   struct MemoryOpaqueCaptureAddressAllocateInfo;
13952   using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
13953   struct MemoryPriorityAllocateInfoEXT;
13954   struct MemoryRequirements;
13955   struct MemoryRequirements2;
13956   using MemoryRequirements2KHR = MemoryRequirements2;
13957   struct MemoryType;
13958 #ifdef VK_USE_PLATFORM_WIN32_KHR
13959   struct MemoryWin32HandlePropertiesKHR;
13960 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13961 #ifdef VK_USE_PLATFORM_METAL_EXT
13962   struct MetalSurfaceCreateInfoEXT;
13963 #endif /*VK_USE_PLATFORM_METAL_EXT*/
13964   struct MultisamplePropertiesEXT;
13965   struct Offset2D;
13966   struct Offset3D;
13967   struct PastPresentationTimingGOOGLE;
13968   struct PerformanceConfigurationAcquireInfoINTEL;
13969   struct PerformanceCounterDescriptionKHR;
13970   struct PerformanceCounterKHR;
13971   union PerformanceCounterResultKHR;
13972   struct PerformanceMarkerInfoINTEL;
13973   struct PerformanceOverrideInfoINTEL;
13974   struct PerformanceQuerySubmitInfoKHR;
13975   struct PerformanceStreamMarkerInfoINTEL;
13976   union PerformanceValueDataINTEL;
13977   struct PerformanceValueINTEL;
13978   struct PhysicalDevice16BitStorageFeatures;
13979   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
13980   struct PhysicalDevice8BitStorageFeatures;
13981   using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
13982   struct PhysicalDeviceASTCDecodeFeaturesEXT;
13983   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
13984   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
13985   struct PhysicalDeviceBufferDeviceAddressFeatures;
13986   using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
13987   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT;
13988   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
13989   struct PhysicalDeviceCoherentMemoryFeaturesAMD;
13990   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV;
13991   struct PhysicalDeviceConditionalRenderingFeaturesEXT;
13992   struct PhysicalDeviceConservativeRasterizationPropertiesEXT;
13993   struct PhysicalDeviceCooperativeMatrixFeaturesNV;
13994   struct PhysicalDeviceCooperativeMatrixPropertiesNV;
13995   struct PhysicalDeviceCornerSampledImageFeaturesNV;
13996   struct PhysicalDeviceCoverageReductionModeFeaturesNV;
13997   struct PhysicalDeviceCustomBorderColorFeaturesEXT;
13998   struct PhysicalDeviceCustomBorderColorPropertiesEXT;
13999   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
14000   struct PhysicalDeviceDepthClipEnableFeaturesEXT;
14001   struct PhysicalDeviceDepthStencilResolveProperties;
14002   using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
14003   struct PhysicalDeviceDescriptorIndexingFeatures;
14004   using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
14005   struct PhysicalDeviceDescriptorIndexingProperties;
14006   using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
14007   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
14008   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
14009   struct PhysicalDeviceDiagnosticsConfigFeaturesNV;
14010   struct PhysicalDeviceDiscardRectanglePropertiesEXT;
14011   struct PhysicalDeviceDriverProperties;
14012   using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
14013   struct PhysicalDeviceExclusiveScissorFeaturesNV;
14014   struct PhysicalDeviceExternalBufferInfo;
14015   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
14016   struct PhysicalDeviceExternalFenceInfo;
14017   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
14018   struct PhysicalDeviceExternalImageFormatInfo;
14019   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
14020   struct PhysicalDeviceExternalMemoryHostPropertiesEXT;
14021   struct PhysicalDeviceExternalSemaphoreInfo;
14022   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
14023   struct PhysicalDeviceFeatures;
14024   struct PhysicalDeviceFeatures2;
14025   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
14026   struct PhysicalDeviceFloatControlsProperties;
14027   using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
14028   struct PhysicalDeviceFragmentDensityMapFeaturesEXT;
14029   struct PhysicalDeviceFragmentDensityMapPropertiesEXT;
14030   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
14031   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
14032   struct PhysicalDeviceGroupProperties;
14033   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
14034   struct PhysicalDeviceHostQueryResetFeatures;
14035   using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
14036   struct PhysicalDeviceIDProperties;
14037   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
14038   struct PhysicalDeviceImageDrmFormatModifierInfoEXT;
14039   struct PhysicalDeviceImageFormatInfo2;
14040   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
14041   struct PhysicalDeviceImageViewImageFormatInfoEXT;
14042   struct PhysicalDeviceImagelessFramebufferFeatures;
14043   using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
14044   struct PhysicalDeviceIndexTypeUint8FeaturesEXT;
14045   struct PhysicalDeviceInlineUniformBlockFeaturesEXT;
14046   struct PhysicalDeviceInlineUniformBlockPropertiesEXT;
14047   struct PhysicalDeviceLimits;
14048   struct PhysicalDeviceLineRasterizationFeaturesEXT;
14049   struct PhysicalDeviceLineRasterizationPropertiesEXT;
14050   struct PhysicalDeviceMaintenance3Properties;
14051   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
14052   struct PhysicalDeviceMemoryBudgetPropertiesEXT;
14053   struct PhysicalDeviceMemoryPriorityFeaturesEXT;
14054   struct PhysicalDeviceMemoryProperties;
14055   struct PhysicalDeviceMemoryProperties2;
14056   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
14057   struct PhysicalDeviceMeshShaderFeaturesNV;
14058   struct PhysicalDeviceMeshShaderPropertiesNV;
14059   struct PhysicalDeviceMultiviewFeatures;
14060   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
14061   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
14062   struct PhysicalDeviceMultiviewProperties;
14063   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
14064   struct PhysicalDevicePCIBusInfoPropertiesEXT;
14065   struct PhysicalDevicePerformanceQueryFeaturesKHR;
14066   struct PhysicalDevicePerformanceQueryPropertiesKHR;
14067   struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
14068   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
14069   struct PhysicalDevicePointClippingProperties;
14070   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
14071   struct PhysicalDevicePrivateDataFeaturesEXT;
14072   struct PhysicalDeviceProperties;
14073   struct PhysicalDeviceProperties2;
14074   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
14075   struct PhysicalDeviceProtectedMemoryFeatures;
14076   struct PhysicalDeviceProtectedMemoryProperties;
14077   struct PhysicalDevicePushDescriptorPropertiesKHR;
14078 #ifdef VK_ENABLE_BETA_EXTENSIONS
14079   struct PhysicalDeviceRayTracingFeaturesKHR;
14080 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14081 #ifdef VK_ENABLE_BETA_EXTENSIONS
14082   struct PhysicalDeviceRayTracingPropertiesKHR;
14083 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14084   struct PhysicalDeviceRayTracingPropertiesNV;
14085   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
14086   struct PhysicalDeviceRobustness2FeaturesEXT;
14087   struct PhysicalDeviceRobustness2PropertiesEXT;
14088   struct PhysicalDeviceSampleLocationsPropertiesEXT;
14089   struct PhysicalDeviceSamplerFilterMinmaxProperties;
14090   using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
14091   struct PhysicalDeviceSamplerYcbcrConversionFeatures;
14092   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
14093   struct PhysicalDeviceScalarBlockLayoutFeatures;
14094   using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
14095   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
14096   using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
14097   struct PhysicalDeviceShaderAtomicInt64Features;
14098   using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
14099   struct PhysicalDeviceShaderClockFeaturesKHR;
14100   struct PhysicalDeviceShaderCoreProperties2AMD;
14101   struct PhysicalDeviceShaderCorePropertiesAMD;
14102   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
14103   struct PhysicalDeviceShaderDrawParametersFeatures;
14104   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
14105   struct PhysicalDeviceShaderFloat16Int8Features;
14106   using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
14107   using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
14108   struct PhysicalDeviceShaderImageFootprintFeaturesNV;
14109   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
14110   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV;
14111   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV;
14112   struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
14113   using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
14114   struct PhysicalDeviceShadingRateImageFeaturesNV;
14115   struct PhysicalDeviceShadingRateImagePropertiesNV;
14116   struct PhysicalDeviceSparseImageFormatInfo2;
14117   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
14118   struct PhysicalDeviceSparseProperties;
14119   struct PhysicalDeviceSubgroupProperties;
14120   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT;
14121   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT;
14122   struct PhysicalDeviceSurfaceInfo2KHR;
14123   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
14124   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
14125   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
14126   struct PhysicalDeviceTimelineSemaphoreFeatures;
14127   using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
14128   struct PhysicalDeviceTimelineSemaphoreProperties;
14129   using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
14130   struct PhysicalDeviceToolPropertiesEXT;
14131   struct PhysicalDeviceTransformFeedbackFeaturesEXT;
14132   struct PhysicalDeviceTransformFeedbackPropertiesEXT;
14133   struct PhysicalDeviceUniformBufferStandardLayoutFeatures;
14134   using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
14135   struct PhysicalDeviceVariablePointersFeatures;
14136   using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
14137   using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
14138   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
14139   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
14140   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
14141   struct PhysicalDeviceVulkan11Features;
14142   struct PhysicalDeviceVulkan11Properties;
14143   struct PhysicalDeviceVulkan12Features;
14144   struct PhysicalDeviceVulkan12Properties;
14145   struct PhysicalDeviceVulkanMemoryModelFeatures;
14146   using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
14147   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT;
14148   struct PipelineCacheCreateInfo;
14149   struct PipelineColorBlendAdvancedStateCreateInfoEXT;
14150   struct PipelineColorBlendAttachmentState;
14151   struct PipelineColorBlendStateCreateInfo;
14152   struct PipelineCompilerControlCreateInfoAMD;
14153   struct PipelineCoverageModulationStateCreateInfoNV;
14154   struct PipelineCoverageReductionStateCreateInfoNV;
14155   struct PipelineCoverageToColorStateCreateInfoNV;
14156   struct PipelineCreationFeedbackCreateInfoEXT;
14157   struct PipelineCreationFeedbackEXT;
14158   struct PipelineDepthStencilStateCreateInfo;
14159   struct PipelineDiscardRectangleStateCreateInfoEXT;
14160   struct PipelineDynamicStateCreateInfo;
14161   struct PipelineExecutableInfoKHR;
14162   struct PipelineExecutableInternalRepresentationKHR;
14163   struct PipelineExecutablePropertiesKHR;
14164   struct PipelineExecutableStatisticKHR;
14165   union PipelineExecutableStatisticValueKHR;
14166   struct PipelineInfoKHR;
14167   struct PipelineInputAssemblyStateCreateInfo;
14168   struct PipelineLayoutCreateInfo;
14169 #ifdef VK_ENABLE_BETA_EXTENSIONS
14170   struct PipelineLibraryCreateInfoKHR;
14171 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14172   struct PipelineMultisampleStateCreateInfo;
14173   struct PipelineRasterizationConservativeStateCreateInfoEXT;
14174   struct PipelineRasterizationDepthClipStateCreateInfoEXT;
14175   struct PipelineRasterizationLineStateCreateInfoEXT;
14176   struct PipelineRasterizationStateCreateInfo;
14177   struct PipelineRasterizationStateRasterizationOrderAMD;
14178   struct PipelineRasterizationStateStreamCreateInfoEXT;
14179   struct PipelineRepresentativeFragmentTestStateCreateInfoNV;
14180   struct PipelineSampleLocationsStateCreateInfoEXT;
14181   struct PipelineShaderStageCreateInfo;
14182   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
14183   struct PipelineTessellationDomainOriginStateCreateInfo;
14184   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
14185   struct PipelineTessellationStateCreateInfo;
14186   struct PipelineVertexInputDivisorStateCreateInfoEXT;
14187   struct PipelineVertexInputStateCreateInfo;
14188   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV;
14189   struct PipelineViewportExclusiveScissorStateCreateInfoNV;
14190   struct PipelineViewportShadingRateImageStateCreateInfoNV;
14191   struct PipelineViewportStateCreateInfo;
14192   struct PipelineViewportSwizzleStateCreateInfoNV;
14193   struct PipelineViewportWScalingStateCreateInfoNV;
14194 #ifdef VK_USE_PLATFORM_GGP
14195   struct PresentFrameTokenGGP;
14196 #endif /*VK_USE_PLATFORM_GGP*/
14197   struct PresentInfoKHR;
14198   struct PresentRegionKHR;
14199   struct PresentRegionsKHR;
14200   struct PresentTimeGOOGLE;
14201   struct PresentTimesInfoGOOGLE;
14202   struct PrivateDataSlotCreateInfoEXT;
14203   struct ProtectedSubmitInfo;
14204   struct PushConstantRange;
14205   struct QueryPoolCreateInfo;
14206   struct QueryPoolPerformanceCreateInfoKHR;
14207   struct QueryPoolPerformanceQueryCreateInfoINTEL;
14208   using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
14209   struct QueueFamilyCheckpointPropertiesNV;
14210   struct QueueFamilyProperties;
14211   struct QueueFamilyProperties2;
14212   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
14213 #ifdef VK_ENABLE_BETA_EXTENSIONS
14214   struct RayTracingPipelineCreateInfoKHR;
14215 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14216   struct RayTracingPipelineCreateInfoNV;
14217 #ifdef VK_ENABLE_BETA_EXTENSIONS
14218   struct RayTracingPipelineInterfaceCreateInfoKHR;
14219 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14220 #ifdef VK_ENABLE_BETA_EXTENSIONS
14221   struct RayTracingShaderGroupCreateInfoKHR;
14222 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14223   struct RayTracingShaderGroupCreateInfoNV;
14224   struct Rect2D;
14225   struct RectLayerKHR;
14226   struct RefreshCycleDurationGOOGLE;
14227   struct RenderPassAttachmentBeginInfo;
14228   using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
14229   struct RenderPassBeginInfo;
14230   struct RenderPassCreateInfo;
14231   struct RenderPassCreateInfo2;
14232   using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
14233   struct RenderPassFragmentDensityMapCreateInfoEXT;
14234   struct RenderPassInputAttachmentAspectCreateInfo;
14235   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
14236   struct RenderPassMultiviewCreateInfo;
14237   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
14238   struct RenderPassSampleLocationsBeginInfoEXT;
14239   struct RenderPassTransformBeginInfoQCOM;
14240   struct SampleLocationEXT;
14241   struct SampleLocationsInfoEXT;
14242   struct SamplerCreateInfo;
14243   struct SamplerCustomBorderColorCreateInfoEXT;
14244   struct SamplerReductionModeCreateInfo;
14245   using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
14246   struct SamplerYcbcrConversionCreateInfo;
14247   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
14248   struct SamplerYcbcrConversionImageFormatProperties;
14249   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
14250   struct SamplerYcbcrConversionInfo;
14251   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
14252   struct SemaphoreCreateInfo;
14253   struct SemaphoreGetFdInfoKHR;
14254 #ifdef VK_USE_PLATFORM_WIN32_KHR
14255   struct SemaphoreGetWin32HandleInfoKHR;
14256 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14257   struct SemaphoreSignalInfo;
14258   using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
14259   struct SemaphoreTypeCreateInfo;
14260   using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
14261   struct SemaphoreWaitInfo;
14262   using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
14263   struct SetStateFlagsIndirectCommandNV;
14264   struct ShaderModuleCreateInfo;
14265   struct ShaderModuleValidationCacheCreateInfoEXT;
14266   struct ShaderResourceUsageAMD;
14267   struct ShaderStatisticsInfoAMD;
14268   struct ShadingRatePaletteNV;
14269   struct SharedPresentSurfaceCapabilitiesKHR;
14270   struct SparseBufferMemoryBindInfo;
14271   struct SparseImageFormatProperties;
14272   struct SparseImageFormatProperties2;
14273   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
14274   struct SparseImageMemoryBind;
14275   struct SparseImageMemoryBindInfo;
14276   struct SparseImageMemoryRequirements;
14277   struct SparseImageMemoryRequirements2;
14278   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
14279   struct SparseImageOpaqueMemoryBindInfo;
14280   struct SparseMemoryBind;
14281   struct SpecializationInfo;
14282   struct SpecializationMapEntry;
14283   struct StencilOpState;
14284 #ifdef VK_USE_PLATFORM_GGP
14285   struct StreamDescriptorSurfaceCreateInfoGGP;
14286 #endif /*VK_USE_PLATFORM_GGP*/
14287 #ifdef VK_ENABLE_BETA_EXTENSIONS
14288   struct StridedBufferRegionKHR;
14289 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14290   struct SubmitInfo;
14291   struct SubpassBeginInfo;
14292   using SubpassBeginInfoKHR = SubpassBeginInfo;
14293   struct SubpassDependency;
14294   struct SubpassDependency2;
14295   using SubpassDependency2KHR = SubpassDependency2;
14296   struct SubpassDescription;
14297   struct SubpassDescription2;
14298   using SubpassDescription2KHR = SubpassDescription2;
14299   struct SubpassDescriptionDepthStencilResolve;
14300   using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
14301   struct SubpassEndInfo;
14302   using SubpassEndInfoKHR = SubpassEndInfo;
14303   struct SubpassSampleLocationsEXT;
14304   struct SubresourceLayout;
14305   struct SurfaceCapabilities2EXT;
14306   struct SurfaceCapabilities2KHR;
14307 #ifdef VK_USE_PLATFORM_WIN32_KHR
14308   struct SurfaceCapabilitiesFullScreenExclusiveEXT;
14309 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14310   struct SurfaceCapabilitiesKHR;
14311   struct SurfaceFormat2KHR;
14312   struct SurfaceFormatKHR;
14313 #ifdef VK_USE_PLATFORM_WIN32_KHR
14314   struct SurfaceFullScreenExclusiveInfoEXT;
14315 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14316 #ifdef VK_USE_PLATFORM_WIN32_KHR
14317   struct SurfaceFullScreenExclusiveWin32InfoEXT;
14318 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14319   struct SurfaceProtectedCapabilitiesKHR;
14320   struct SwapchainCounterCreateInfoEXT;
14321   struct SwapchainCreateInfoKHR;
14322   struct SwapchainDisplayNativeHdrCreateInfoAMD;
14323   struct TextureLODGatherFormatPropertiesAMD;
14324   struct TimelineSemaphoreSubmitInfo;
14325   using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
14326 #ifdef VK_ENABLE_BETA_EXTENSIONS
14327   struct TraceRaysIndirectCommandKHR;
14328 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14329   struct TransformMatrixKHR;
14330   using TransformMatrixNV = TransformMatrixKHR;
14331   struct ValidationCacheCreateInfoEXT;
14332   struct ValidationFeaturesEXT;
14333   struct ValidationFlagsEXT;
14334   struct VertexInputAttributeDescription;
14335   struct VertexInputBindingDescription;
14336   struct VertexInputBindingDivisorDescriptionEXT;
14337 #ifdef VK_USE_PLATFORM_VI_NN
14338   struct ViSurfaceCreateInfoNN;
14339 #endif /*VK_USE_PLATFORM_VI_NN*/
14340   struct Viewport;
14341   struct ViewportSwizzleNV;
14342   struct ViewportWScalingNV;
14343 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
14344   struct WaylandSurfaceCreateInfoKHR;
14345 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
14346 #ifdef VK_USE_PLATFORM_WIN32_KHR
14347   struct Win32KeyedMutexAcquireReleaseInfoKHR;
14348 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14349 #ifdef VK_USE_PLATFORM_WIN32_KHR
14350   struct Win32KeyedMutexAcquireReleaseInfoNV;
14351 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14352 #ifdef VK_USE_PLATFORM_WIN32_KHR
14353   struct Win32SurfaceCreateInfoKHR;
14354 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14355   struct WriteDescriptorSet;
14356   struct WriteDescriptorSetAccelerationStructureKHR;
14357   using WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR;
14358   struct WriteDescriptorSetInlineUniformBlockEXT;
14359   struct XYColorEXT;
14360 #ifdef VK_USE_PLATFORM_XCB_KHR
14361   struct XcbSurfaceCreateInfoKHR;
14362 #endif /*VK_USE_PLATFORM_XCB_KHR*/
14363 #ifdef VK_USE_PLATFORM_XLIB_KHR
14364   struct XlibSurfaceCreateInfoKHR;
14365 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
14366 
14367   class SurfaceKHR
14368   {
14369   public:
14370     using CType = VkSurfaceKHR;
14371 
14372     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSurfaceKHR;
14373 
14374   public:
SurfaceKHR()14375     VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT
14376       : m_surfaceKHR(VK_NULL_HANDLE)
14377     {}
14378 
SurfaceKHR(std::nullptr_t)14379     VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14380       : m_surfaceKHR(VK_NULL_HANDLE)
14381     {}
14382 
SurfaceKHR(VkSurfaceKHR surfaceKHR)14383     VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT
14384       : m_surfaceKHR( surfaceKHR )
14385     {}
14386 
14387 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSurfaceKHR surfaceKHR)14388     SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT
14389     {
14390       m_surfaceKHR = surfaceKHR;
14391       return *this;
14392     }
14393 #endif
14394 
operator =(std::nullptr_t)14395     SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14396     {
14397       m_surfaceKHR = VK_NULL_HANDLE;
14398       return *this;
14399     }
14400 
14401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14402     auto operator<=>( SurfaceKHR const& ) const = default;
14403 #else
operator ==(SurfaceKHR const & rhs) const14404     bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14405     {
14406       return m_surfaceKHR == rhs.m_surfaceKHR;
14407     }
14408 
operator !=(SurfaceKHR const & rhs) const14409     bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14410     {
14411       return m_surfaceKHR != rhs.m_surfaceKHR;
14412     }
14413 
operator <(SurfaceKHR const & rhs) const14414     bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14415     {
14416       return m_surfaceKHR < rhs.m_surfaceKHR;
14417     }
14418 #endif
14419 
operator VkSurfaceKHR() const14420     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT
14421     {
14422       return m_surfaceKHR;
14423     }
14424 
operator bool() const14425     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14426     {
14427       return m_surfaceKHR != VK_NULL_HANDLE;
14428     }
14429 
operator !() const14430     bool operator!() const VULKAN_HPP_NOEXCEPT
14431     {
14432       return m_surfaceKHR == VK_NULL_HANDLE;
14433     }
14434 
14435   private:
14436     VkSurfaceKHR m_surfaceKHR;
14437   };
14438   static_assert( sizeof( SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
14439 
14440   template <>
14441   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSurfaceKHR>
14442   {
14443     using type = SurfaceKHR;
14444   };
14445 
14446   template <>
14447   struct CppType<ObjectType, ObjectType::eSurfaceKHR>
14448   {
14449     using Type = SurfaceKHR;
14450   };
14451 
14452   class DebugReportCallbackEXT
14453   {
14454   public:
14455     using CType = VkDebugReportCallbackEXT;
14456 
14457     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDebugReportCallbackEXT;
14458 
14459   public:
DebugReportCallbackEXT()14460     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT
14461       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
14462     {}
14463 
DebugReportCallbackEXT(std::nullptr_t)14464     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14465       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
14466     {}
14467 
DebugReportCallbackEXT(VkDebugReportCallbackEXT debugReportCallbackEXT)14468     VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT
14469       : m_debugReportCallbackEXT( debugReportCallbackEXT )
14470     {}
14471 
14472 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugReportCallbackEXT debugReportCallbackEXT)14473     DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT
14474     {
14475       m_debugReportCallbackEXT = debugReportCallbackEXT;
14476       return *this;
14477     }
14478 #endif
14479 
operator =(std::nullptr_t)14480     DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14481     {
14482       m_debugReportCallbackEXT = VK_NULL_HANDLE;
14483       return *this;
14484     }
14485 
14486 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14487     auto operator<=>( DebugReportCallbackEXT const& ) const = default;
14488 #else
operator ==(DebugReportCallbackEXT const & rhs) const14489     bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
14490     {
14491       return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT;
14492     }
14493 
operator !=(DebugReportCallbackEXT const & rhs) const14494     bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
14495     {
14496       return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT;
14497     }
14498 
operator <(DebugReportCallbackEXT const & rhs) const14499     bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
14500     {
14501       return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT;
14502     }
14503 #endif
14504 
operator VkDebugReportCallbackEXT() const14505     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT
14506     {
14507       return m_debugReportCallbackEXT;
14508     }
14509 
operator bool() const14510     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14511     {
14512       return m_debugReportCallbackEXT != VK_NULL_HANDLE;
14513     }
14514 
operator !() const14515     bool operator!() const VULKAN_HPP_NOEXCEPT
14516     {
14517       return m_debugReportCallbackEXT == VK_NULL_HANDLE;
14518     }
14519 
14520   private:
14521     VkDebugReportCallbackEXT m_debugReportCallbackEXT;
14522   };
14523   static_assert( sizeof( DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" );
14524 
14525   template <>
14526   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugReportCallbackEXT>
14527   {
14528     using type = DebugReportCallbackEXT;
14529   };
14530 
14531   template <>
14532   struct CppType<ObjectType, ObjectType::eDebugReportCallbackEXT>
14533   {
14534     using Type = DebugReportCallbackEXT;
14535   };
14536 
14537   class DebugUtilsMessengerEXT
14538   {
14539   public:
14540     using CType = VkDebugUtilsMessengerEXT;
14541 
14542     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDebugUtilsMessengerEXT;
14543 
14544   public:
DebugUtilsMessengerEXT()14545     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT
14546       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
14547     {}
14548 
DebugUtilsMessengerEXT(std::nullptr_t)14549     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14550       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
14551     {}
14552 
DebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)14553     VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT
14554       : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
14555     {}
14556 
14557 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)14558     DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT
14559     {
14560       m_debugUtilsMessengerEXT = debugUtilsMessengerEXT;
14561       return *this;
14562     }
14563 #endif
14564 
operator =(std::nullptr_t)14565     DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14566     {
14567       m_debugUtilsMessengerEXT = VK_NULL_HANDLE;
14568       return *this;
14569     }
14570 
14571 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14572     auto operator<=>( DebugUtilsMessengerEXT const& ) const = default;
14573 #else
operator ==(DebugUtilsMessengerEXT const & rhs) const14574     bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
14575     {
14576       return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT;
14577     }
14578 
operator !=(DebugUtilsMessengerEXT const & rhs) const14579     bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
14580     {
14581       return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT;
14582     }
14583 
operator <(DebugUtilsMessengerEXT const & rhs) const14584     bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
14585     {
14586       return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT;
14587     }
14588 #endif
14589 
operator VkDebugUtilsMessengerEXT() const14590     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT
14591     {
14592       return m_debugUtilsMessengerEXT;
14593     }
14594 
operator bool() const14595     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14596     {
14597       return m_debugUtilsMessengerEXT != VK_NULL_HANDLE;
14598     }
14599 
operator !() const14600     bool operator!() const VULKAN_HPP_NOEXCEPT
14601     {
14602       return m_debugUtilsMessengerEXT == VK_NULL_HANDLE;
14603     }
14604 
14605   private:
14606     VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
14607   };
14608   static_assert( sizeof( DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" );
14609 
14610   template <>
14611   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugUtilsMessengerEXT>
14612   {
14613     using type = DebugUtilsMessengerEXT;
14614   };
14615 
14616   template <>
14617   struct CppType<ObjectType, ObjectType::eDebugUtilsMessengerEXT>
14618   {
14619     using Type = DebugUtilsMessengerEXT;
14620   };
14621 
14622   class DisplayKHR
14623   {
14624   public:
14625     using CType = VkDisplayKHR;
14626 
14627     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDisplayKHR;
14628 
14629   public:
DisplayKHR()14630     VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT
14631       : m_displayKHR(VK_NULL_HANDLE)
14632     {}
14633 
DisplayKHR(std::nullptr_t)14634     VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14635       : m_displayKHR(VK_NULL_HANDLE)
14636     {}
14637 
DisplayKHR(VkDisplayKHR displayKHR)14638     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT
14639       : m_displayKHR( displayKHR )
14640     {}
14641 
14642 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayKHR displayKHR)14643     DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT
14644     {
14645       m_displayKHR = displayKHR;
14646       return *this;
14647     }
14648 #endif
14649 
operator =(std::nullptr_t)14650     DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14651     {
14652       m_displayKHR = VK_NULL_HANDLE;
14653       return *this;
14654     }
14655 
14656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14657     auto operator<=>( DisplayKHR const& ) const = default;
14658 #else
operator ==(DisplayKHR const & rhs) const14659     bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14660     {
14661       return m_displayKHR == rhs.m_displayKHR;
14662     }
14663 
operator !=(DisplayKHR const & rhs) const14664     bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14665     {
14666       return m_displayKHR != rhs.m_displayKHR;
14667     }
14668 
operator <(DisplayKHR const & rhs) const14669     bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14670     {
14671       return m_displayKHR < rhs.m_displayKHR;
14672     }
14673 #endif
14674 
operator VkDisplayKHR() const14675     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT
14676     {
14677       return m_displayKHR;
14678     }
14679 
operator bool() const14680     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14681     {
14682       return m_displayKHR != VK_NULL_HANDLE;
14683     }
14684 
operator !() const14685     bool operator!() const VULKAN_HPP_NOEXCEPT
14686     {
14687       return m_displayKHR == VK_NULL_HANDLE;
14688     }
14689 
14690   private:
14691     VkDisplayKHR m_displayKHR;
14692   };
14693   static_assert( sizeof( DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
14694 
14695   template <>
14696   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayKHR>
14697   {
14698     using type = DisplayKHR;
14699   };
14700 
14701   template <>
14702   struct CppType<ObjectType, ObjectType::eDisplayKHR>
14703   {
14704     using Type = DisplayKHR;
14705   };
14706 
14707   class SwapchainKHR
14708   {
14709   public:
14710     using CType = VkSwapchainKHR;
14711 
14712     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSwapchainKHR;
14713 
14714   public:
SwapchainKHR()14715     VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT
14716       : m_swapchainKHR(VK_NULL_HANDLE)
14717     {}
14718 
SwapchainKHR(std::nullptr_t)14719     VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14720       : m_swapchainKHR(VK_NULL_HANDLE)
14721     {}
14722 
SwapchainKHR(VkSwapchainKHR swapchainKHR)14723     VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT
14724       : m_swapchainKHR( swapchainKHR )
14725     {}
14726 
14727 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSwapchainKHR swapchainKHR)14728     SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT
14729     {
14730       m_swapchainKHR = swapchainKHR;
14731       return *this;
14732     }
14733 #endif
14734 
operator =(std::nullptr_t)14735     SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14736     {
14737       m_swapchainKHR = VK_NULL_HANDLE;
14738       return *this;
14739     }
14740 
14741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14742     auto operator<=>( SwapchainKHR const& ) const = default;
14743 #else
operator ==(SwapchainKHR const & rhs) const14744     bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14745     {
14746       return m_swapchainKHR == rhs.m_swapchainKHR;
14747     }
14748 
operator !=(SwapchainKHR const & rhs) const14749     bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14750     {
14751       return m_swapchainKHR != rhs.m_swapchainKHR;
14752     }
14753 
operator <(SwapchainKHR const & rhs) const14754     bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14755     {
14756       return m_swapchainKHR < rhs.m_swapchainKHR;
14757     }
14758 #endif
14759 
operator VkSwapchainKHR() const14760     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT
14761     {
14762       return m_swapchainKHR;
14763     }
14764 
operator bool() const14765     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14766     {
14767       return m_swapchainKHR != VK_NULL_HANDLE;
14768     }
14769 
operator !() const14770     bool operator!() const VULKAN_HPP_NOEXCEPT
14771     {
14772       return m_swapchainKHR == VK_NULL_HANDLE;
14773     }
14774 
14775   private:
14776     VkSwapchainKHR m_swapchainKHR;
14777   };
14778   static_assert( sizeof( SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
14779 
14780   template <>
14781   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSwapchainKHR>
14782   {
14783     using type = SwapchainKHR;
14784   };
14785 
14786   template <>
14787   struct CppType<ObjectType, ObjectType::eSwapchainKHR>
14788   {
14789     using Type = SwapchainKHR;
14790   };
14791 
14792   class Semaphore
14793   {
14794   public:
14795     using CType = VkSemaphore;
14796 
14797     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSemaphore;
14798 
14799   public:
Semaphore()14800     VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT
14801       : m_semaphore(VK_NULL_HANDLE)
14802     {}
14803 
Semaphore(std::nullptr_t)14804     VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14805       : m_semaphore(VK_NULL_HANDLE)
14806     {}
14807 
Semaphore(VkSemaphore semaphore)14808     VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT
14809       : m_semaphore( semaphore )
14810     {}
14811 
14812 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSemaphore semaphore)14813     Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT
14814     {
14815       m_semaphore = semaphore;
14816       return *this;
14817     }
14818 #endif
14819 
operator =(std::nullptr_t)14820     Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14821     {
14822       m_semaphore = VK_NULL_HANDLE;
14823       return *this;
14824     }
14825 
14826 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14827     auto operator<=>( Semaphore const& ) const = default;
14828 #else
operator ==(Semaphore const & rhs) const14829     bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
14830     {
14831       return m_semaphore == rhs.m_semaphore;
14832     }
14833 
operator !=(Semaphore const & rhs) const14834     bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
14835     {
14836       return m_semaphore != rhs.m_semaphore;
14837     }
14838 
operator <(Semaphore const & rhs) const14839     bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
14840     {
14841       return m_semaphore < rhs.m_semaphore;
14842     }
14843 #endif
14844 
operator VkSemaphore() const14845     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT
14846     {
14847       return m_semaphore;
14848     }
14849 
operator bool() const14850     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14851     {
14852       return m_semaphore != VK_NULL_HANDLE;
14853     }
14854 
operator !() const14855     bool operator!() const VULKAN_HPP_NOEXCEPT
14856     {
14857       return m_semaphore == VK_NULL_HANDLE;
14858     }
14859 
14860   private:
14861     VkSemaphore m_semaphore;
14862   };
14863   static_assert( sizeof( Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
14864 
14865   template <>
14866   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSemaphore>
14867   {
14868     using type = Semaphore;
14869   };
14870 
14871   template <>
14872   struct CppType<ObjectType, ObjectType::eSemaphore>
14873   {
14874     using Type = Semaphore;
14875   };
14876 
14877   class Fence
14878   {
14879   public:
14880     using CType = VkFence;
14881 
14882     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eFence;
14883 
14884   public:
Fence()14885     VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT
14886       : m_fence(VK_NULL_HANDLE)
14887     {}
14888 
Fence(std::nullptr_t)14889     VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14890       : m_fence(VK_NULL_HANDLE)
14891     {}
14892 
Fence(VkFence fence)14893     VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT
14894       : m_fence( fence )
14895     {}
14896 
14897 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFence fence)14898     Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT
14899     {
14900       m_fence = fence;
14901       return *this;
14902     }
14903 #endif
14904 
operator =(std::nullptr_t)14905     Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14906     {
14907       m_fence = VK_NULL_HANDLE;
14908       return *this;
14909     }
14910 
14911 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14912     auto operator<=>( Fence const& ) const = default;
14913 #else
operator ==(Fence const & rhs) const14914     bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
14915     {
14916       return m_fence == rhs.m_fence;
14917     }
14918 
operator !=(Fence const & rhs) const14919     bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
14920     {
14921       return m_fence != rhs.m_fence;
14922     }
14923 
operator <(Fence const & rhs) const14924     bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
14925     {
14926       return m_fence < rhs.m_fence;
14927     }
14928 #endif
14929 
operator VkFence() const14930     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT
14931     {
14932       return m_fence;
14933     }
14934 
operator bool() const14935     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14936     {
14937       return m_fence != VK_NULL_HANDLE;
14938     }
14939 
operator !() const14940     bool operator!() const VULKAN_HPP_NOEXCEPT
14941     {
14942       return m_fence == VK_NULL_HANDLE;
14943     }
14944 
14945   private:
14946     VkFence m_fence;
14947   };
14948   static_assert( sizeof( Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
14949 
14950   template <>
14951   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFence>
14952   {
14953     using type = Fence;
14954   };
14955 
14956   template <>
14957   struct CppType<ObjectType, ObjectType::eFence>
14958   {
14959     using Type = Fence;
14960   };
14961 
14962   class PerformanceConfigurationINTEL
14963   {
14964   public:
14965     using CType = VkPerformanceConfigurationINTEL;
14966 
14967     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePerformanceConfigurationINTEL;
14968 
14969   public:
PerformanceConfigurationINTEL()14970     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT
14971       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
14972     {}
14973 
PerformanceConfigurationINTEL(std::nullptr_t)14974     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14975       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
14976     {}
14977 
PerformanceConfigurationINTEL(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)14978     VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT
14979       : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
14980     {}
14981 
14982 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)14983     PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT
14984     {
14985       m_performanceConfigurationINTEL = performanceConfigurationINTEL;
14986       return *this;
14987     }
14988 #endif
14989 
operator =(std::nullptr_t)14990     PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14991     {
14992       m_performanceConfigurationINTEL = VK_NULL_HANDLE;
14993       return *this;
14994     }
14995 
14996 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14997     auto operator<=>( PerformanceConfigurationINTEL const& ) const = default;
14998 #else
operator ==(PerformanceConfigurationINTEL const & rhs) const14999     bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
15000     {
15001       return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL;
15002     }
15003 
operator !=(PerformanceConfigurationINTEL const & rhs) const15004     bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
15005     {
15006       return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL;
15007     }
15008 
operator <(PerformanceConfigurationINTEL const & rhs) const15009     bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
15010     {
15011       return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL;
15012     }
15013 #endif
15014 
operator VkPerformanceConfigurationINTEL() const15015     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT
15016     {
15017       return m_performanceConfigurationINTEL;
15018     }
15019 
operator bool() const15020     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15021     {
15022       return m_performanceConfigurationINTEL != VK_NULL_HANDLE;
15023     }
15024 
operator !() const15025     bool operator!() const VULKAN_HPP_NOEXCEPT
15026     {
15027       return m_performanceConfigurationINTEL == VK_NULL_HANDLE;
15028     }
15029 
15030   private:
15031     VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL;
15032   };
15033   static_assert( sizeof( PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" );
15034 
15035   template <>
15036   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePerformanceConfigurationINTEL>
15037   {
15038     using type = PerformanceConfigurationINTEL;
15039   };
15040 
15041   template <>
15042   struct CppType<ObjectType, ObjectType::ePerformanceConfigurationINTEL>
15043   {
15044     using Type = PerformanceConfigurationINTEL;
15045   };
15046 
15047   class QueryPool
15048   {
15049   public:
15050     using CType = VkQueryPool;
15051 
15052     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eQueryPool;
15053 
15054   public:
QueryPool()15055     VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT
15056       : m_queryPool(VK_NULL_HANDLE)
15057     {}
15058 
QueryPool(std::nullptr_t)15059     VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15060       : m_queryPool(VK_NULL_HANDLE)
15061     {}
15062 
QueryPool(VkQueryPool queryPool)15063     VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT
15064       : m_queryPool( queryPool )
15065     {}
15066 
15067 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueryPool queryPool)15068     QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT
15069     {
15070       m_queryPool = queryPool;
15071       return *this;
15072     }
15073 #endif
15074 
operator =(std::nullptr_t)15075     QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15076     {
15077       m_queryPool = VK_NULL_HANDLE;
15078       return *this;
15079     }
15080 
15081 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15082     auto operator<=>( QueryPool const& ) const = default;
15083 #else
operator ==(QueryPool const & rhs) const15084     bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
15085     {
15086       return m_queryPool == rhs.m_queryPool;
15087     }
15088 
operator !=(QueryPool const & rhs) const15089     bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
15090     {
15091       return m_queryPool != rhs.m_queryPool;
15092     }
15093 
operator <(QueryPool const & rhs) const15094     bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
15095     {
15096       return m_queryPool < rhs.m_queryPool;
15097     }
15098 #endif
15099 
operator VkQueryPool() const15100     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT
15101     {
15102       return m_queryPool;
15103     }
15104 
operator bool() const15105     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15106     {
15107       return m_queryPool != VK_NULL_HANDLE;
15108     }
15109 
operator !() const15110     bool operator!() const VULKAN_HPP_NOEXCEPT
15111     {
15112       return m_queryPool == VK_NULL_HANDLE;
15113     }
15114 
15115   private:
15116     VkQueryPool m_queryPool;
15117   };
15118   static_assert( sizeof( QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
15119 
15120   template <>
15121   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueryPool>
15122   {
15123     using type = QueryPool;
15124   };
15125 
15126   template <>
15127   struct CppType<ObjectType, ObjectType::eQueryPool>
15128   {
15129     using Type = QueryPool;
15130   };
15131 
15132   class Buffer
15133   {
15134   public:
15135     using CType = VkBuffer;
15136 
15137     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eBuffer;
15138 
15139   public:
Buffer()15140     VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT
15141       : m_buffer(VK_NULL_HANDLE)
15142     {}
15143 
Buffer(std::nullptr_t)15144     VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15145       : m_buffer(VK_NULL_HANDLE)
15146     {}
15147 
Buffer(VkBuffer buffer)15148     VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT
15149       : m_buffer( buffer )
15150     {}
15151 
15152 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBuffer buffer)15153     Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT
15154     {
15155       m_buffer = buffer;
15156       return *this;
15157     }
15158 #endif
15159 
operator =(std::nullptr_t)15160     Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15161     {
15162       m_buffer = VK_NULL_HANDLE;
15163       return *this;
15164     }
15165 
15166 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15167     auto operator<=>( Buffer const& ) const = default;
15168 #else
operator ==(Buffer const & rhs) const15169     bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15170     {
15171       return m_buffer == rhs.m_buffer;
15172     }
15173 
operator !=(Buffer const & rhs) const15174     bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15175     {
15176       return m_buffer != rhs.m_buffer;
15177     }
15178 
operator <(Buffer const & rhs) const15179     bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15180     {
15181       return m_buffer < rhs.m_buffer;
15182     }
15183 #endif
15184 
operator VkBuffer() const15185     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT
15186     {
15187       return m_buffer;
15188     }
15189 
operator bool() const15190     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15191     {
15192       return m_buffer != VK_NULL_HANDLE;
15193     }
15194 
operator !() const15195     bool operator!() const VULKAN_HPP_NOEXCEPT
15196     {
15197       return m_buffer == VK_NULL_HANDLE;
15198     }
15199 
15200   private:
15201     VkBuffer m_buffer;
15202   };
15203   static_assert( sizeof( Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
15204 
15205   template <>
15206   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBuffer>
15207   {
15208     using type = Buffer;
15209   };
15210 
15211   template <>
15212   struct CppType<ObjectType, ObjectType::eBuffer>
15213   {
15214     using Type = Buffer;
15215   };
15216 
15217   class PipelineLayout
15218   {
15219   public:
15220     using CType = VkPipelineLayout;
15221 
15222     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipelineLayout;
15223 
15224   public:
PipelineLayout()15225     VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT
15226       : m_pipelineLayout(VK_NULL_HANDLE)
15227     {}
15228 
PipelineLayout(std::nullptr_t)15229     VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15230       : m_pipelineLayout(VK_NULL_HANDLE)
15231     {}
15232 
PipelineLayout(VkPipelineLayout pipelineLayout)15233     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT
15234       : m_pipelineLayout( pipelineLayout )
15235     {}
15236 
15237 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineLayout pipelineLayout)15238     PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT
15239     {
15240       m_pipelineLayout = pipelineLayout;
15241       return *this;
15242     }
15243 #endif
15244 
operator =(std::nullptr_t)15245     PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15246     {
15247       m_pipelineLayout = VK_NULL_HANDLE;
15248       return *this;
15249     }
15250 
15251 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15252     auto operator<=>( PipelineLayout const& ) const = default;
15253 #else
operator ==(PipelineLayout const & rhs) const15254     bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
15255     {
15256       return m_pipelineLayout == rhs.m_pipelineLayout;
15257     }
15258 
operator !=(PipelineLayout const & rhs) const15259     bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
15260     {
15261       return m_pipelineLayout != rhs.m_pipelineLayout;
15262     }
15263 
operator <(PipelineLayout const & rhs) const15264     bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
15265     {
15266       return m_pipelineLayout < rhs.m_pipelineLayout;
15267     }
15268 #endif
15269 
operator VkPipelineLayout() const15270     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT
15271     {
15272       return m_pipelineLayout;
15273     }
15274 
operator bool() const15275     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15276     {
15277       return m_pipelineLayout != VK_NULL_HANDLE;
15278     }
15279 
operator !() const15280     bool operator!() const VULKAN_HPP_NOEXCEPT
15281     {
15282       return m_pipelineLayout == VK_NULL_HANDLE;
15283     }
15284 
15285   private:
15286     VkPipelineLayout m_pipelineLayout;
15287   };
15288   static_assert( sizeof( PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
15289 
15290   template <>
15291   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineLayout>
15292   {
15293     using type = PipelineLayout;
15294   };
15295 
15296   template <>
15297   struct CppType<ObjectType, ObjectType::ePipelineLayout>
15298   {
15299     using Type = PipelineLayout;
15300   };
15301 
15302   class DescriptorSet
15303   {
15304   public:
15305     using CType = VkDescriptorSet;
15306 
15307     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorSet;
15308 
15309   public:
DescriptorSet()15310     VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT
15311       : m_descriptorSet(VK_NULL_HANDLE)
15312     {}
15313 
DescriptorSet(std::nullptr_t)15314     VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15315       : m_descriptorSet(VK_NULL_HANDLE)
15316     {}
15317 
DescriptorSet(VkDescriptorSet descriptorSet)15318     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT
15319       : m_descriptorSet( descriptorSet )
15320     {}
15321 
15322 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSet descriptorSet)15323     DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT
15324     {
15325       m_descriptorSet = descriptorSet;
15326       return *this;
15327     }
15328 #endif
15329 
operator =(std::nullptr_t)15330     DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15331     {
15332       m_descriptorSet = VK_NULL_HANDLE;
15333       return *this;
15334     }
15335 
15336 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15337     auto operator<=>( DescriptorSet const& ) const = default;
15338 #else
operator ==(DescriptorSet const & rhs) const15339     bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
15340     {
15341       return m_descriptorSet == rhs.m_descriptorSet;
15342     }
15343 
operator !=(DescriptorSet const & rhs) const15344     bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
15345     {
15346       return m_descriptorSet != rhs.m_descriptorSet;
15347     }
15348 
operator <(DescriptorSet const & rhs) const15349     bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
15350     {
15351       return m_descriptorSet < rhs.m_descriptorSet;
15352     }
15353 #endif
15354 
operator VkDescriptorSet() const15355     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT
15356     {
15357       return m_descriptorSet;
15358     }
15359 
operator bool() const15360     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15361     {
15362       return m_descriptorSet != VK_NULL_HANDLE;
15363     }
15364 
operator !() const15365     bool operator!() const VULKAN_HPP_NOEXCEPT
15366     {
15367       return m_descriptorSet == VK_NULL_HANDLE;
15368     }
15369 
15370   private:
15371     VkDescriptorSet m_descriptorSet;
15372   };
15373   static_assert( sizeof( DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
15374 
15375   template <>
15376   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSet>
15377   {
15378     using type = DescriptorSet;
15379   };
15380 
15381   template <>
15382   struct CppType<ObjectType, ObjectType::eDescriptorSet>
15383   {
15384     using Type = DescriptorSet;
15385   };
15386 
15387   class Pipeline
15388   {
15389   public:
15390     using CType = VkPipeline;
15391 
15392     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipeline;
15393 
15394   public:
Pipeline()15395     VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT
15396       : m_pipeline(VK_NULL_HANDLE)
15397     {}
15398 
Pipeline(std::nullptr_t)15399     VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15400       : m_pipeline(VK_NULL_HANDLE)
15401     {}
15402 
Pipeline(VkPipeline pipeline)15403     VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT
15404       : m_pipeline( pipeline )
15405     {}
15406 
15407 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipeline pipeline)15408     Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT
15409     {
15410       m_pipeline = pipeline;
15411       return *this;
15412     }
15413 #endif
15414 
operator =(std::nullptr_t)15415     Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15416     {
15417       m_pipeline = VK_NULL_HANDLE;
15418       return *this;
15419     }
15420 
15421 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15422     auto operator<=>( Pipeline const& ) const = default;
15423 #else
operator ==(Pipeline const & rhs) const15424     bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
15425     {
15426       return m_pipeline == rhs.m_pipeline;
15427     }
15428 
operator !=(Pipeline const & rhs) const15429     bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
15430     {
15431       return m_pipeline != rhs.m_pipeline;
15432     }
15433 
operator <(Pipeline const & rhs) const15434     bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
15435     {
15436       return m_pipeline < rhs.m_pipeline;
15437     }
15438 #endif
15439 
operator VkPipeline() const15440     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT
15441     {
15442       return m_pipeline;
15443     }
15444 
operator bool() const15445     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15446     {
15447       return m_pipeline != VK_NULL_HANDLE;
15448     }
15449 
operator !() const15450     bool operator!() const VULKAN_HPP_NOEXCEPT
15451     {
15452       return m_pipeline == VK_NULL_HANDLE;
15453     }
15454 
15455   private:
15456     VkPipeline m_pipeline;
15457   };
15458   static_assert( sizeof( Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
15459 
15460   template <>
15461   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipeline>
15462   {
15463     using type = Pipeline;
15464   };
15465 
15466   template <>
15467   struct CppType<ObjectType, ObjectType::ePipeline>
15468   {
15469     using Type = Pipeline;
15470   };
15471 
15472   class ImageView
15473   {
15474   public:
15475     using CType = VkImageView;
15476 
15477     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eImageView;
15478 
15479   public:
ImageView()15480     VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT
15481       : m_imageView(VK_NULL_HANDLE)
15482     {}
15483 
ImageView(std::nullptr_t)15484     VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15485       : m_imageView(VK_NULL_HANDLE)
15486     {}
15487 
ImageView(VkImageView imageView)15488     VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT
15489       : m_imageView( imageView )
15490     {}
15491 
15492 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImageView imageView)15493     ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT
15494     {
15495       m_imageView = imageView;
15496       return *this;
15497     }
15498 #endif
15499 
operator =(std::nullptr_t)15500     ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15501     {
15502       m_imageView = VK_NULL_HANDLE;
15503       return *this;
15504     }
15505 
15506 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15507     auto operator<=>( ImageView const& ) const = default;
15508 #else
operator ==(ImageView const & rhs) const15509     bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
15510     {
15511       return m_imageView == rhs.m_imageView;
15512     }
15513 
operator !=(ImageView const & rhs) const15514     bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
15515     {
15516       return m_imageView != rhs.m_imageView;
15517     }
15518 
operator <(ImageView const & rhs) const15519     bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
15520     {
15521       return m_imageView < rhs.m_imageView;
15522     }
15523 #endif
15524 
operator VkImageView() const15525     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT
15526     {
15527       return m_imageView;
15528     }
15529 
operator bool() const15530     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15531     {
15532       return m_imageView != VK_NULL_HANDLE;
15533     }
15534 
operator !() const15535     bool operator!() const VULKAN_HPP_NOEXCEPT
15536     {
15537       return m_imageView == VK_NULL_HANDLE;
15538     }
15539 
15540   private:
15541     VkImageView m_imageView;
15542   };
15543   static_assert( sizeof( ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
15544 
15545   template <>
15546   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImageView>
15547   {
15548     using type = ImageView;
15549   };
15550 
15551   template <>
15552   struct CppType<ObjectType, ObjectType::eImageView>
15553   {
15554     using Type = ImageView;
15555   };
15556 
15557   class Image
15558   {
15559   public:
15560     using CType = VkImage;
15561 
15562     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eImage;
15563 
15564   public:
Image()15565     VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT
15566       : m_image(VK_NULL_HANDLE)
15567     {}
15568 
Image(std::nullptr_t)15569     VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15570       : m_image(VK_NULL_HANDLE)
15571     {}
15572 
Image(VkImage image)15573     VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT
15574       : m_image( image )
15575     {}
15576 
15577 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImage image)15578     Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT
15579     {
15580       m_image = image;
15581       return *this;
15582     }
15583 #endif
15584 
operator =(std::nullptr_t)15585     Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15586     {
15587       m_image = VK_NULL_HANDLE;
15588       return *this;
15589     }
15590 
15591 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15592     auto operator<=>( Image const& ) const = default;
15593 #else
operator ==(Image const & rhs) const15594     bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT
15595     {
15596       return m_image == rhs.m_image;
15597     }
15598 
operator !=(Image const & rhs) const15599     bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
15600     {
15601       return m_image != rhs.m_image;
15602     }
15603 
operator <(Image const & rhs) const15604     bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
15605     {
15606       return m_image < rhs.m_image;
15607     }
15608 #endif
15609 
operator VkImage() const15610     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT
15611     {
15612       return m_image;
15613     }
15614 
operator bool() const15615     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15616     {
15617       return m_image != VK_NULL_HANDLE;
15618     }
15619 
operator !() const15620     bool operator!() const VULKAN_HPP_NOEXCEPT
15621     {
15622       return m_image == VK_NULL_HANDLE;
15623     }
15624 
15625   private:
15626     VkImage m_image;
15627   };
15628   static_assert( sizeof( Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
15629 
15630   template <>
15631   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImage>
15632   {
15633     using type = Image;
15634   };
15635 
15636   template <>
15637   struct CppType<ObjectType, ObjectType::eImage>
15638   {
15639     using Type = Image;
15640   };
15641 
15642   class AccelerationStructureKHR
15643   {
15644   public:
15645     using CType = VkAccelerationStructureKHR;
15646 
15647     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eAccelerationStructureKHR;
15648 
15649   public:
AccelerationStructureKHR()15650     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() VULKAN_HPP_NOEXCEPT
15651       : m_accelerationStructureKHR(VK_NULL_HANDLE)
15652     {}
15653 
AccelerationStructureKHR(std::nullptr_t)15654     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15655       : m_accelerationStructureKHR(VK_NULL_HANDLE)
15656     {}
15657 
AccelerationStructureKHR(VkAccelerationStructureKHR accelerationStructureKHR)15658     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT
15659       : m_accelerationStructureKHR( accelerationStructureKHR )
15660     {}
15661 
15662 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkAccelerationStructureKHR accelerationStructureKHR)15663     AccelerationStructureKHR & operator=(VkAccelerationStructureKHR accelerationStructureKHR) VULKAN_HPP_NOEXCEPT
15664     {
15665       m_accelerationStructureKHR = accelerationStructureKHR;
15666       return *this;
15667     }
15668 #endif
15669 
operator =(std::nullptr_t)15670     AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15671     {
15672       m_accelerationStructureKHR = VK_NULL_HANDLE;
15673       return *this;
15674     }
15675 
15676 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15677     auto operator<=>( AccelerationStructureKHR const& ) const = default;
15678 #else
operator ==(AccelerationStructureKHR const & rhs) const15679     bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15680     {
15681       return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR;
15682     }
15683 
operator !=(AccelerationStructureKHR const & rhs) const15684     bool operator!=(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15685     {
15686       return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR;
15687     }
15688 
operator <(AccelerationStructureKHR const & rhs) const15689     bool operator<(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15690     {
15691       return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR;
15692     }
15693 #endif
15694 
operator VkAccelerationStructureKHR() const15695     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT
15696     {
15697       return m_accelerationStructureKHR;
15698     }
15699 
operator bool() const15700     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15701     {
15702       return m_accelerationStructureKHR != VK_NULL_HANDLE;
15703     }
15704 
operator !() const15705     bool operator!() const VULKAN_HPP_NOEXCEPT
15706     {
15707       return m_accelerationStructureKHR == VK_NULL_HANDLE;
15708     }
15709 
15710   private:
15711     VkAccelerationStructureKHR m_accelerationStructureKHR;
15712   };
15713   static_assert( sizeof( AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), "handle and wrapper have different size!" );
15714 
15715   template <>
15716   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eAccelerationStructureKHR>
15717   {
15718     using type = AccelerationStructureKHR;
15719   };
15720 
15721   template <>
15722   struct CppType<ObjectType, ObjectType::eAccelerationStructureKHR>
15723   {
15724     using Type = AccelerationStructureKHR;
15725   };
15726   using AccelerationStructureNV = AccelerationStructureKHR;
15727 
15728   class DescriptorUpdateTemplate
15729   {
15730   public:
15731     using CType = VkDescriptorUpdateTemplate;
15732 
15733     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorUpdateTemplate;
15734 
15735   public:
DescriptorUpdateTemplate()15736     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT
15737       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
15738     {}
15739 
DescriptorUpdateTemplate(std::nullptr_t)15740     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15741       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
15742     {}
15743 
DescriptorUpdateTemplate(VkDescriptorUpdateTemplate descriptorUpdateTemplate)15744     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT
15745       : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
15746     {}
15747 
15748 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorUpdateTemplate descriptorUpdateTemplate)15749     DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT
15750     {
15751       m_descriptorUpdateTemplate = descriptorUpdateTemplate;
15752       return *this;
15753     }
15754 #endif
15755 
operator =(std::nullptr_t)15756     DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15757     {
15758       m_descriptorUpdateTemplate = VK_NULL_HANDLE;
15759       return *this;
15760     }
15761 
15762 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15763     auto operator<=>( DescriptorUpdateTemplate const& ) const = default;
15764 #else
operator ==(DescriptorUpdateTemplate const & rhs) const15765     bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
15766     {
15767       return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate;
15768     }
15769 
operator !=(DescriptorUpdateTemplate const & rhs) const15770     bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
15771     {
15772       return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate;
15773     }
15774 
operator <(DescriptorUpdateTemplate const & rhs) const15775     bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
15776     {
15777       return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate;
15778     }
15779 #endif
15780 
operator VkDescriptorUpdateTemplate() const15781     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT
15782     {
15783       return m_descriptorUpdateTemplate;
15784     }
15785 
operator bool() const15786     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15787     {
15788       return m_descriptorUpdateTemplate != VK_NULL_HANDLE;
15789     }
15790 
operator !() const15791     bool operator!() const VULKAN_HPP_NOEXCEPT
15792     {
15793       return m_descriptorUpdateTemplate == VK_NULL_HANDLE;
15794     }
15795 
15796   private:
15797     VkDescriptorUpdateTemplate m_descriptorUpdateTemplate;
15798   };
15799   static_assert( sizeof( DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" );
15800 
15801   template <>
15802   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorUpdateTemplate>
15803   {
15804     using type = DescriptorUpdateTemplate;
15805   };
15806 
15807   template <>
15808   struct CppType<ObjectType, ObjectType::eDescriptorUpdateTemplate>
15809   {
15810     using Type = DescriptorUpdateTemplate;
15811   };
15812   using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
15813 
15814   class Event
15815   {
15816   public:
15817     using CType = VkEvent;
15818 
15819     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eEvent;
15820 
15821   public:
Event()15822     VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT
15823       : m_event(VK_NULL_HANDLE)
15824     {}
15825 
Event(std::nullptr_t)15826     VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15827       : m_event(VK_NULL_HANDLE)
15828     {}
15829 
Event(VkEvent event)15830     VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT
15831       : m_event( event )
15832     {}
15833 
15834 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkEvent event)15835     Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT
15836     {
15837       m_event = event;
15838       return *this;
15839     }
15840 #endif
15841 
operator =(std::nullptr_t)15842     Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15843     {
15844       m_event = VK_NULL_HANDLE;
15845       return *this;
15846     }
15847 
15848 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15849     auto operator<=>( Event const& ) const = default;
15850 #else
operator ==(Event const & rhs) const15851     bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT
15852     {
15853       return m_event == rhs.m_event;
15854     }
15855 
operator !=(Event const & rhs) const15856     bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
15857     {
15858       return m_event != rhs.m_event;
15859     }
15860 
operator <(Event const & rhs) const15861     bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
15862     {
15863       return m_event < rhs.m_event;
15864     }
15865 #endif
15866 
operator VkEvent() const15867     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT
15868     {
15869       return m_event;
15870     }
15871 
operator bool() const15872     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15873     {
15874       return m_event != VK_NULL_HANDLE;
15875     }
15876 
operator !() const15877     bool operator!() const VULKAN_HPP_NOEXCEPT
15878     {
15879       return m_event == VK_NULL_HANDLE;
15880     }
15881 
15882   private:
15883     VkEvent m_event;
15884   };
15885   static_assert( sizeof( Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
15886 
15887   template <>
15888   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eEvent>
15889   {
15890     using type = Event;
15891   };
15892 
15893   template <>
15894   struct CppType<ObjectType, ObjectType::eEvent>
15895   {
15896     using Type = Event;
15897   };
15898 
15899   class CommandBuffer
15900   {
15901   public:
15902     using CType = VkCommandBuffer;
15903 
15904     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eCommandBuffer;
15905 
15906   public:
CommandBuffer()15907     VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT
15908       : m_commandBuffer(VK_NULL_HANDLE)
15909     {}
15910 
CommandBuffer(std::nullptr_t)15911     VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15912       : m_commandBuffer(VK_NULL_HANDLE)
15913     {}
15914 
CommandBuffer(VkCommandBuffer commandBuffer)15915     VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT
15916       : m_commandBuffer( commandBuffer )
15917     {}
15918 
15919 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandBuffer commandBuffer)15920     CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT
15921     {
15922       m_commandBuffer = commandBuffer;
15923       return *this;
15924     }
15925 #endif
15926 
operator =(std::nullptr_t)15927     CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15928     {
15929       m_commandBuffer = VK_NULL_HANDLE;
15930       return *this;
15931     }
15932 
15933 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15934     auto operator<=>( CommandBuffer const& ) const = default;
15935 #else
operator ==(CommandBuffer const & rhs) const15936     bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15937     {
15938       return m_commandBuffer == rhs.m_commandBuffer;
15939     }
15940 
operator !=(CommandBuffer const & rhs) const15941     bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15942     {
15943       return m_commandBuffer != rhs.m_commandBuffer;
15944     }
15945 
operator <(CommandBuffer const & rhs) const15946     bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15947     {
15948       return m_commandBuffer < rhs.m_commandBuffer;
15949     }
15950 #endif
15951 
15952     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15953     Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15954 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15955     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15956     typename ResultValueType<void>::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
15957 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15958 
15959     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15960     void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15962     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15963     void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15965 
15966     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15967     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15968 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15969     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15970     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15972 
15973     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15974     void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15975 
15976     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15977     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 ) const VULKAN_HPP_NOEXCEPT;
15978 
15979     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15980     void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15981 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15982     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15983     void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15984 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15985 
15986     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15987     void beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15988 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15989     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15990     void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15991 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15992 
15993     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15994     void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15996     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
15997     void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
15998 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15999 
16000     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16001     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16002 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16003     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16004     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> counterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16005 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16006 
16007     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16008     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 ) const VULKAN_HPP_NOEXCEPT;
16009 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16010     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16011     void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets, ArrayProxy<const uint32_t> dynamicOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16012 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16013 
16014     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16015     void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16016 
16017     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16018     void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16019 
16020     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16021     void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16022 
16023     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16024     void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16025 
16026     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16027     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16028 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16029     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16030     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> sizes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16031 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16032 
16033     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16034     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 ) const VULKAN_HPP_NOEXCEPT;
16035 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16036     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16037     void bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> offsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16038 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16039 
16040     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16041     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 ) const VULKAN_HPP_NOEXCEPT;
16042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16043     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16044     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> regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16045 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16046 
16047 #ifdef VK_ENABLE_BETA_EXTENSIONS
16048     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16049     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 ) const VULKAN_HPP_NOEXCEPT;
16050 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16051     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16052     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 ) const VULKAN_HPP_NOEXCEPT;
16053 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16054 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16055 
16056 #ifdef VK_ENABLE_BETA_EXTENSIONS
16057     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16058     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 ) const VULKAN_HPP_NOEXCEPT;
16059 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16060     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16061     void buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const> pOffsetInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16062 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16063 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16064 
16065     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16066     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 ) const VULKAN_HPP_NOEXCEPT;
16067 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16068     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16069     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 ) const VULKAN_HPP_NOEXCEPT;
16070 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16071 
16072     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16073     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 ) const VULKAN_HPP_NOEXCEPT;
16074 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16075     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16076     void clearAttachments( ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> attachments, ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> rects, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16078 
16079     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16080     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 ) const VULKAN_HPP_NOEXCEPT;
16081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16082     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16083     void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> ranges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16084 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16085 
16086     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16087     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 ) const VULKAN_HPP_NOEXCEPT;
16088 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16089     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16090     void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> ranges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16091 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16092 
16093 #ifdef VK_ENABLE_BETA_EXTENSIONS
16094     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16095     void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16096 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16097     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16098     void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16099 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16100 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16101 
16102     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16103     void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16104 
16105 #ifdef VK_ENABLE_BETA_EXTENSIONS
16106     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16107     void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16109     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16110     void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16111 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16112 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16113 
16114     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16115     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 ) const VULKAN_HPP_NOEXCEPT;
16116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16117     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16118     void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16120 
16121     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16122     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 ) const VULKAN_HPP_NOEXCEPT;
16123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16124     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16125     void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16126 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16127 
16128     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16129     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 ) const VULKAN_HPP_NOEXCEPT;
16130 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16131     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16132     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> regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16133 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16134 
16135     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16136     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 ) const VULKAN_HPP_NOEXCEPT;
16137 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16138     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16139     void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16140 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16141 
16142 #ifdef VK_ENABLE_BETA_EXTENSIONS
16143     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16144     void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16145 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16146     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16147     void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16149 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16150 
16151     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16152     void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16153 
16154     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16155     void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16156 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16157     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16158     void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16159 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16160 
16161     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16162     void debugMarkerEndEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16163 
16164     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16165     void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16166 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16167     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16168     void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16169 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16170 
16171     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16172     void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16173 
16174     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16175     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 ) const VULKAN_HPP_NOEXCEPT;
16176 
16177     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16178     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 ) const VULKAN_HPP_NOEXCEPT;
16179 
16180     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16181     void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16182 
16183     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16184     void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16185 
16186     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16187     void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16188 
16189     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16190     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 ) const VULKAN_HPP_NOEXCEPT;
16191 
16192     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16193     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 ) const VULKAN_HPP_NOEXCEPT;
16194 
16195     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16196     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 ) const VULKAN_HPP_NOEXCEPT;
16197 
16198     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16199     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 ) const VULKAN_HPP_NOEXCEPT;
16200 
16201     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16202     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 ) const VULKAN_HPP_NOEXCEPT;
16203 
16204     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16205     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 ) const VULKAN_HPP_NOEXCEPT;
16206 
16207     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16208     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 ) const VULKAN_HPP_NOEXCEPT;
16209 
16210     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16211     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 ) const VULKAN_HPP_NOEXCEPT;
16212 
16213     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16214     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 ) const VULKAN_HPP_NOEXCEPT;
16215 
16216     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16217     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 ) const VULKAN_HPP_NOEXCEPT;
16218 
16219     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16220     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 ) const VULKAN_HPP_NOEXCEPT;
16221 
16222     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16223     void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16224 
16225     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16226     void endConditionalRenderingEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16227 
16228     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16229     void endDebugUtilsLabelEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16230 
16231     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16232     void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16233 
16234     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16235     void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16236 
16237     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16238     void endRenderPass(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16239 
16240     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16241     void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16242 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16243     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16244     void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16245 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16246 
16247     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16248     void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16250     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16251     void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16252 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16253 
16254     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16255     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16256 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16257     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16258     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> counterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16259 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16260 
16261     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16262     void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16263 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16264     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16265     void executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16266 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16267 
16268     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16269     void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16270 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16271     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16272     void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16274 
16275     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16276     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 ) const VULKAN_HPP_NOEXCEPT;
16277 
16278     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16279     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16280 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16281     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16282     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16283 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16284 
16285     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16286     void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16287 
16288     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16289     void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16290 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16291     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16292     void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16293 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16294 
16295     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16296     void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16297 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16298     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16299     void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16300 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16301 
16302     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16303     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 ) const VULKAN_HPP_NOEXCEPT;
16304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16305     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16306     void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16307 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16308 
16309     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16310     void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16312     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16313     void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16315 
16316     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16317     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 ) const VULKAN_HPP_NOEXCEPT;
16318 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16319     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16320     void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> values, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16321 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16322 
16323     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16324     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 ) const VULKAN_HPP_NOEXCEPT;
16325 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16326     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16327     void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> descriptorWrites, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16329 
16330     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16331     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 ) const VULKAN_HPP_NOEXCEPT;
16332 
16333     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16334     void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16335 
16336     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16337     void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16338 
16339     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16340     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 ) const VULKAN_HPP_NOEXCEPT;
16341 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16342     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16343     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> regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16344 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16345 
16346     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16347     void setBlendConstants( const float blendConstants[4], Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16348 
16349     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16350     void setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16351 
16352     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16353     void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16354 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16355     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16356     void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16358 
16359     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16360     void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16361 
16362     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16363     void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16364 
16365     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16366     void setDeviceMask( uint32_t deviceMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16367 
16368     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16369     void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16370 
16371     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16372     void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16374     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16375     void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> discardRectangles, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16376 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16377 
16378     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16379     void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16380 
16381     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16382     void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16383 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16384     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16385     void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> exclusiveScissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16386 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16387 
16388     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16389     void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16390 
16391     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16392     void setLineWidth( float lineWidth, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16393 
16394     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16395     Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16396 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16397     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16398     typename ResultValueType<void>::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16399 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16400 
16401     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16402     Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16403 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16404     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16405     typename ResultValueType<void>::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16406 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16407 
16408     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16409     Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16410 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16411     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16412     typename ResultValueType<void>::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16413 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16414 
16415     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16416     void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16417 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16418     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16419     void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16420 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16421 
16422     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16423     void setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16424 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16425     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16426     void setScissor( uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> scissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16428 
16429     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16430     void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16431 
16432     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16433     void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16434 
16435     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16436     void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16437 
16438     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16439     void setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16441     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16442     void setViewport( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> viewports, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16443 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16444 
16445     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16446     void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16447 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16448     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16449     void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16451 
16452     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16453     void setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16454 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16455     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16456     void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> viewportWScalings, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16458 
16459 #ifdef VK_ENABLE_BETA_EXTENSIONS
16460     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16461     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 ) const VULKAN_HPP_NOEXCEPT;
16462 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16463     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16464     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 ) const VULKAN_HPP_NOEXCEPT;
16465 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16466 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16467 
16468 #ifdef VK_ENABLE_BETA_EXTENSIONS
16469     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16470     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 ) const VULKAN_HPP_NOEXCEPT;
16471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16472     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16473     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 ) const VULKAN_HPP_NOEXCEPT;
16474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16475 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16476 
16477     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16478     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 ) const VULKAN_HPP_NOEXCEPT;
16479 
16480     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16481     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 ) const VULKAN_HPP_NOEXCEPT;
16482 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16483     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16484     void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy<const T> data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16485 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16486 
16487     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16488     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 ) const VULKAN_HPP_NOEXCEPT;
16489 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16490     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16491     void waitEvents( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16492 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16493 
16494     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16495     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 ) const VULKAN_HPP_NOEXCEPT;
16496 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16497     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16498     void writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16499 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16500 
16501     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16502     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 ) const VULKAN_HPP_NOEXCEPT;
16503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16504     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16505     void writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16506 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16507 
16508     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16509     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 ) const VULKAN_HPP_NOEXCEPT;
16510 
16511     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16512     void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16513 
16514 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16515     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16516     Result end(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16517 #else
16518     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16519     typename ResultValueType<void>::type end(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16520 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16521 
16522 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16523     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16524     Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
16525 #else
16526     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
16527     typename ResultValueType<void>::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
16528 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16529 
operator VkCommandBuffer() const16530     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
16531     {
16532       return m_commandBuffer;
16533     }
16534 
operator bool() const16535     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16536     {
16537       return m_commandBuffer != VK_NULL_HANDLE;
16538     }
16539 
operator !() const16540     bool operator!() const VULKAN_HPP_NOEXCEPT
16541     {
16542       return m_commandBuffer == VK_NULL_HANDLE;
16543     }
16544 
16545   private:
16546     VkCommandBuffer m_commandBuffer;
16547   };
16548   static_assert( sizeof( CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
16549 
16550   template <>
16551   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandBuffer>
16552   {
16553     using type = CommandBuffer;
16554   };
16555 
16556   template <>
16557   struct CppType<ObjectType, ObjectType::eCommandBuffer>
16558   {
16559     using Type = CommandBuffer;
16560   };
16561 
16562   class DeviceMemory
16563   {
16564   public:
16565     using CType = VkDeviceMemory;
16566 
16567     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDeviceMemory;
16568 
16569   public:
DeviceMemory()16570     VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT
16571       : m_deviceMemory(VK_NULL_HANDLE)
16572     {}
16573 
DeviceMemory(std::nullptr_t)16574     VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16575       : m_deviceMemory(VK_NULL_HANDLE)
16576     {}
16577 
DeviceMemory(VkDeviceMemory deviceMemory)16578     VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT
16579       : m_deviceMemory( deviceMemory )
16580     {}
16581 
16582 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeviceMemory deviceMemory)16583     DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT
16584     {
16585       m_deviceMemory = deviceMemory;
16586       return *this;
16587     }
16588 #endif
16589 
operator =(std::nullptr_t)16590     DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16591     {
16592       m_deviceMemory = VK_NULL_HANDLE;
16593       return *this;
16594     }
16595 
16596 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16597     auto operator<=>( DeviceMemory const& ) const = default;
16598 #else
operator ==(DeviceMemory const & rhs) const16599     bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
16600     {
16601       return m_deviceMemory == rhs.m_deviceMemory;
16602     }
16603 
operator !=(DeviceMemory const & rhs) const16604     bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
16605     {
16606       return m_deviceMemory != rhs.m_deviceMemory;
16607     }
16608 
operator <(DeviceMemory const & rhs) const16609     bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
16610     {
16611       return m_deviceMemory < rhs.m_deviceMemory;
16612     }
16613 #endif
16614 
operator VkDeviceMemory() const16615     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT
16616     {
16617       return m_deviceMemory;
16618     }
16619 
operator bool() const16620     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16621     {
16622       return m_deviceMemory != VK_NULL_HANDLE;
16623     }
16624 
operator !() const16625     bool operator!() const VULKAN_HPP_NOEXCEPT
16626     {
16627       return m_deviceMemory == VK_NULL_HANDLE;
16628     }
16629 
16630   private:
16631     VkDeviceMemory m_deviceMemory;
16632   };
16633   static_assert( sizeof( DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
16634 
16635   template <>
16636   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeviceMemory>
16637   {
16638     using type = DeviceMemory;
16639   };
16640 
16641   template <>
16642   struct CppType<ObjectType, ObjectType::eDeviceMemory>
16643   {
16644     using Type = DeviceMemory;
16645   };
16646 
16647   class BufferView
16648   {
16649   public:
16650     using CType = VkBufferView;
16651 
16652     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eBufferView;
16653 
16654   public:
BufferView()16655     VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT
16656       : m_bufferView(VK_NULL_HANDLE)
16657     {}
16658 
BufferView(std::nullptr_t)16659     VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16660       : m_bufferView(VK_NULL_HANDLE)
16661     {}
16662 
BufferView(VkBufferView bufferView)16663     VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT
16664       : m_bufferView( bufferView )
16665     {}
16666 
16667 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBufferView bufferView)16668     BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT
16669     {
16670       m_bufferView = bufferView;
16671       return *this;
16672     }
16673 #endif
16674 
operator =(std::nullptr_t)16675     BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16676     {
16677       m_bufferView = VK_NULL_HANDLE;
16678       return *this;
16679     }
16680 
16681 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16682     auto operator<=>( BufferView const& ) const = default;
16683 #else
operator ==(BufferView const & rhs) const16684     bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
16685     {
16686       return m_bufferView == rhs.m_bufferView;
16687     }
16688 
operator !=(BufferView const & rhs) const16689     bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
16690     {
16691       return m_bufferView != rhs.m_bufferView;
16692     }
16693 
operator <(BufferView const & rhs) const16694     bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
16695     {
16696       return m_bufferView < rhs.m_bufferView;
16697     }
16698 #endif
16699 
operator VkBufferView() const16700     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT
16701     {
16702       return m_bufferView;
16703     }
16704 
operator bool() const16705     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16706     {
16707       return m_bufferView != VK_NULL_HANDLE;
16708     }
16709 
operator !() const16710     bool operator!() const VULKAN_HPP_NOEXCEPT
16711     {
16712       return m_bufferView == VK_NULL_HANDLE;
16713     }
16714 
16715   private:
16716     VkBufferView m_bufferView;
16717   };
16718   static_assert( sizeof( BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
16719 
16720   template <>
16721   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBufferView>
16722   {
16723     using type = BufferView;
16724   };
16725 
16726   template <>
16727   struct CppType<ObjectType, ObjectType::eBufferView>
16728   {
16729     using Type = BufferView;
16730   };
16731 
16732   class CommandPool
16733   {
16734   public:
16735     using CType = VkCommandPool;
16736 
16737     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eCommandPool;
16738 
16739   public:
CommandPool()16740     VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT
16741       : m_commandPool(VK_NULL_HANDLE)
16742     {}
16743 
CommandPool(std::nullptr_t)16744     VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16745       : m_commandPool(VK_NULL_HANDLE)
16746     {}
16747 
CommandPool(VkCommandPool commandPool)16748     VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT
16749       : m_commandPool( commandPool )
16750     {}
16751 
16752 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandPool commandPool)16753     CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT
16754     {
16755       m_commandPool = commandPool;
16756       return *this;
16757     }
16758 #endif
16759 
operator =(std::nullptr_t)16760     CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16761     {
16762       m_commandPool = VK_NULL_HANDLE;
16763       return *this;
16764     }
16765 
16766 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16767     auto operator<=>( CommandPool const& ) const = default;
16768 #else
operator ==(CommandPool const & rhs) const16769     bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
16770     {
16771       return m_commandPool == rhs.m_commandPool;
16772     }
16773 
operator !=(CommandPool const & rhs) const16774     bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
16775     {
16776       return m_commandPool != rhs.m_commandPool;
16777     }
16778 
operator <(CommandPool const & rhs) const16779     bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
16780     {
16781       return m_commandPool < rhs.m_commandPool;
16782     }
16783 #endif
16784 
operator VkCommandPool() const16785     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT
16786     {
16787       return m_commandPool;
16788     }
16789 
operator bool() const16790     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16791     {
16792       return m_commandPool != VK_NULL_HANDLE;
16793     }
16794 
operator !() const16795     bool operator!() const VULKAN_HPP_NOEXCEPT
16796     {
16797       return m_commandPool == VK_NULL_HANDLE;
16798     }
16799 
16800   private:
16801     VkCommandPool m_commandPool;
16802   };
16803   static_assert( sizeof( CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
16804 
16805   template <>
16806   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandPool>
16807   {
16808     using type = CommandPool;
16809   };
16810 
16811   template <>
16812   struct CppType<ObjectType, ObjectType::eCommandPool>
16813   {
16814     using Type = CommandPool;
16815   };
16816 
16817   class PipelineCache
16818   {
16819   public:
16820     using CType = VkPipelineCache;
16821 
16822     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipelineCache;
16823 
16824   public:
PipelineCache()16825     VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT
16826       : m_pipelineCache(VK_NULL_HANDLE)
16827     {}
16828 
PipelineCache(std::nullptr_t)16829     VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16830       : m_pipelineCache(VK_NULL_HANDLE)
16831     {}
16832 
PipelineCache(VkPipelineCache pipelineCache)16833     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT
16834       : m_pipelineCache( pipelineCache )
16835     {}
16836 
16837 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineCache pipelineCache)16838     PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT
16839     {
16840       m_pipelineCache = pipelineCache;
16841       return *this;
16842     }
16843 #endif
16844 
operator =(std::nullptr_t)16845     PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16846     {
16847       m_pipelineCache = VK_NULL_HANDLE;
16848       return *this;
16849     }
16850 
16851 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16852     auto operator<=>( PipelineCache const& ) const = default;
16853 #else
operator ==(PipelineCache const & rhs) const16854     bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
16855     {
16856       return m_pipelineCache == rhs.m_pipelineCache;
16857     }
16858 
operator !=(PipelineCache const & rhs) const16859     bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
16860     {
16861       return m_pipelineCache != rhs.m_pipelineCache;
16862     }
16863 
operator <(PipelineCache const & rhs) const16864     bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
16865     {
16866       return m_pipelineCache < rhs.m_pipelineCache;
16867     }
16868 #endif
16869 
operator VkPipelineCache() const16870     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT
16871     {
16872       return m_pipelineCache;
16873     }
16874 
operator bool() const16875     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16876     {
16877       return m_pipelineCache != VK_NULL_HANDLE;
16878     }
16879 
operator !() const16880     bool operator!() const VULKAN_HPP_NOEXCEPT
16881     {
16882       return m_pipelineCache == VK_NULL_HANDLE;
16883     }
16884 
16885   private:
16886     VkPipelineCache m_pipelineCache;
16887   };
16888   static_assert( sizeof( PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
16889 
16890   template <>
16891   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineCache>
16892   {
16893     using type = PipelineCache;
16894   };
16895 
16896   template <>
16897   struct CppType<ObjectType, ObjectType::ePipelineCache>
16898   {
16899     using Type = PipelineCache;
16900   };
16901 
16902 #ifdef VK_ENABLE_BETA_EXTENSIONS
16903   class DeferredOperationKHR
16904   {
16905   public:
16906     using CType = VkDeferredOperationKHR;
16907 
16908     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDeferredOperationKHR;
16909 
16910   public:
DeferredOperationKHR()16911     VULKAN_HPP_CONSTEXPR DeferredOperationKHR() VULKAN_HPP_NOEXCEPT
16912       : m_deferredOperationKHR(VK_NULL_HANDLE)
16913     {}
16914 
DeferredOperationKHR(std::nullptr_t)16915     VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16916       : m_deferredOperationKHR(VK_NULL_HANDLE)
16917     {}
16918 
DeferredOperationKHR(VkDeferredOperationKHR deferredOperationKHR)16919     VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT
16920       : m_deferredOperationKHR( deferredOperationKHR )
16921     {}
16922 
16923 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeferredOperationKHR deferredOperationKHR)16924     DeferredOperationKHR & operator=(VkDeferredOperationKHR deferredOperationKHR) VULKAN_HPP_NOEXCEPT
16925     {
16926       m_deferredOperationKHR = deferredOperationKHR;
16927       return *this;
16928     }
16929 #endif
16930 
operator =(std::nullptr_t)16931     DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16932     {
16933       m_deferredOperationKHR = VK_NULL_HANDLE;
16934       return *this;
16935     }
16936 
16937 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16938     auto operator<=>( DeferredOperationKHR const& ) const = default;
16939 #else
operator ==(DeferredOperationKHR const & rhs) const16940     bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16941     {
16942       return m_deferredOperationKHR == rhs.m_deferredOperationKHR;
16943     }
16944 
operator !=(DeferredOperationKHR const & rhs) const16945     bool operator!=(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16946     {
16947       return m_deferredOperationKHR != rhs.m_deferredOperationKHR;
16948     }
16949 
operator <(DeferredOperationKHR const & rhs) const16950     bool operator<(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16951     {
16952       return m_deferredOperationKHR < rhs.m_deferredOperationKHR;
16953     }
16954 #endif
16955 
operator VkDeferredOperationKHR() const16956     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT
16957     {
16958       return m_deferredOperationKHR;
16959     }
16960 
operator bool() const16961     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16962     {
16963       return m_deferredOperationKHR != VK_NULL_HANDLE;
16964     }
16965 
operator !() const16966     bool operator!() const VULKAN_HPP_NOEXCEPT
16967     {
16968       return m_deferredOperationKHR == VK_NULL_HANDLE;
16969     }
16970 
16971   private:
16972     VkDeferredOperationKHR m_deferredOperationKHR;
16973   };
16974   static_assert( sizeof( DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" );
16975 
16976   template <>
16977   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeferredOperationKHR>
16978   {
16979     using type = DeferredOperationKHR;
16980   };
16981 
16982   template <>
16983   struct CppType<ObjectType, ObjectType::eDeferredOperationKHR>
16984   {
16985     using Type = DeferredOperationKHR;
16986   };
16987 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16988 
16989   class DescriptorPool
16990   {
16991   public:
16992     using CType = VkDescriptorPool;
16993 
16994     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorPool;
16995 
16996   public:
DescriptorPool()16997     VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT
16998       : m_descriptorPool(VK_NULL_HANDLE)
16999     {}
17000 
DescriptorPool(std::nullptr_t)17001     VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17002       : m_descriptorPool(VK_NULL_HANDLE)
17003     {}
17004 
DescriptorPool(VkDescriptorPool descriptorPool)17005     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT
17006       : m_descriptorPool( descriptorPool )
17007     {}
17008 
17009 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorPool descriptorPool)17010     DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT
17011     {
17012       m_descriptorPool = descriptorPool;
17013       return *this;
17014     }
17015 #endif
17016 
operator =(std::nullptr_t)17017     DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17018     {
17019       m_descriptorPool = VK_NULL_HANDLE;
17020       return *this;
17021     }
17022 
17023 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17024     auto operator<=>( DescriptorPool const& ) const = default;
17025 #else
operator ==(DescriptorPool const & rhs) const17026     bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
17027     {
17028       return m_descriptorPool == rhs.m_descriptorPool;
17029     }
17030 
operator !=(DescriptorPool const & rhs) const17031     bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
17032     {
17033       return m_descriptorPool != rhs.m_descriptorPool;
17034     }
17035 
operator <(DescriptorPool const & rhs) const17036     bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
17037     {
17038       return m_descriptorPool < rhs.m_descriptorPool;
17039     }
17040 #endif
17041 
operator VkDescriptorPool() const17042     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT
17043     {
17044       return m_descriptorPool;
17045     }
17046 
operator bool() const17047     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17048     {
17049       return m_descriptorPool != VK_NULL_HANDLE;
17050     }
17051 
operator !() const17052     bool operator!() const VULKAN_HPP_NOEXCEPT
17053     {
17054       return m_descriptorPool == VK_NULL_HANDLE;
17055     }
17056 
17057   private:
17058     VkDescriptorPool m_descriptorPool;
17059   };
17060   static_assert( sizeof( DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
17061 
17062   template <>
17063   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorPool>
17064   {
17065     using type = DescriptorPool;
17066   };
17067 
17068   template <>
17069   struct CppType<ObjectType, ObjectType::eDescriptorPool>
17070   {
17071     using Type = DescriptorPool;
17072   };
17073 
17074   class DescriptorSetLayout
17075   {
17076   public:
17077     using CType = VkDescriptorSetLayout;
17078 
17079     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorSetLayout;
17080 
17081   public:
DescriptorSetLayout()17082     VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT
17083       : m_descriptorSetLayout(VK_NULL_HANDLE)
17084     {}
17085 
DescriptorSetLayout(std::nullptr_t)17086     VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17087       : m_descriptorSetLayout(VK_NULL_HANDLE)
17088     {}
17089 
DescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout)17090     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT
17091       : m_descriptorSetLayout( descriptorSetLayout )
17092     {}
17093 
17094 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSetLayout descriptorSetLayout)17095     DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT
17096     {
17097       m_descriptorSetLayout = descriptorSetLayout;
17098       return *this;
17099     }
17100 #endif
17101 
operator =(std::nullptr_t)17102     DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17103     {
17104       m_descriptorSetLayout = VK_NULL_HANDLE;
17105       return *this;
17106     }
17107 
17108 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17109     auto operator<=>( DescriptorSetLayout const& ) const = default;
17110 #else
operator ==(DescriptorSetLayout const & rhs) const17111     bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
17112     {
17113       return m_descriptorSetLayout == rhs.m_descriptorSetLayout;
17114     }
17115 
operator !=(DescriptorSetLayout const & rhs) const17116     bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
17117     {
17118       return m_descriptorSetLayout != rhs.m_descriptorSetLayout;
17119     }
17120 
operator <(DescriptorSetLayout const & rhs) const17121     bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
17122     {
17123       return m_descriptorSetLayout < rhs.m_descriptorSetLayout;
17124     }
17125 #endif
17126 
operator VkDescriptorSetLayout() const17127     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT
17128     {
17129       return m_descriptorSetLayout;
17130     }
17131 
operator bool() const17132     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17133     {
17134       return m_descriptorSetLayout != VK_NULL_HANDLE;
17135     }
17136 
operator !() const17137     bool operator!() const VULKAN_HPP_NOEXCEPT
17138     {
17139       return m_descriptorSetLayout == VK_NULL_HANDLE;
17140     }
17141 
17142   private:
17143     VkDescriptorSetLayout m_descriptorSetLayout;
17144   };
17145   static_assert( sizeof( DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
17146 
17147   template <>
17148   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSetLayout>
17149   {
17150     using type = DescriptorSetLayout;
17151   };
17152 
17153   template <>
17154   struct CppType<ObjectType, ObjectType::eDescriptorSetLayout>
17155   {
17156     using Type = DescriptorSetLayout;
17157   };
17158 
17159   class Framebuffer
17160   {
17161   public:
17162     using CType = VkFramebuffer;
17163 
17164     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eFramebuffer;
17165 
17166   public:
Framebuffer()17167     VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT
17168       : m_framebuffer(VK_NULL_HANDLE)
17169     {}
17170 
Framebuffer(std::nullptr_t)17171     VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17172       : m_framebuffer(VK_NULL_HANDLE)
17173     {}
17174 
Framebuffer(VkFramebuffer framebuffer)17175     VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT
17176       : m_framebuffer( framebuffer )
17177     {}
17178 
17179 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFramebuffer framebuffer)17180     Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT
17181     {
17182       m_framebuffer = framebuffer;
17183       return *this;
17184     }
17185 #endif
17186 
operator =(std::nullptr_t)17187     Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17188     {
17189       m_framebuffer = VK_NULL_HANDLE;
17190       return *this;
17191     }
17192 
17193 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17194     auto operator<=>( Framebuffer const& ) const = default;
17195 #else
operator ==(Framebuffer const & rhs) const17196     bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
17197     {
17198       return m_framebuffer == rhs.m_framebuffer;
17199     }
17200 
operator !=(Framebuffer const & rhs) const17201     bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
17202     {
17203       return m_framebuffer != rhs.m_framebuffer;
17204     }
17205 
operator <(Framebuffer const & rhs) const17206     bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
17207     {
17208       return m_framebuffer < rhs.m_framebuffer;
17209     }
17210 #endif
17211 
operator VkFramebuffer() const17212     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT
17213     {
17214       return m_framebuffer;
17215     }
17216 
operator bool() const17217     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17218     {
17219       return m_framebuffer != VK_NULL_HANDLE;
17220     }
17221 
operator !() const17222     bool operator!() const VULKAN_HPP_NOEXCEPT
17223     {
17224       return m_framebuffer == VK_NULL_HANDLE;
17225     }
17226 
17227   private:
17228     VkFramebuffer m_framebuffer;
17229   };
17230   static_assert( sizeof( Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
17231 
17232   template <>
17233   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFramebuffer>
17234   {
17235     using type = Framebuffer;
17236   };
17237 
17238   template <>
17239   struct CppType<ObjectType, ObjectType::eFramebuffer>
17240   {
17241     using Type = Framebuffer;
17242   };
17243 
17244   class IndirectCommandsLayoutNV
17245   {
17246   public:
17247     using CType = VkIndirectCommandsLayoutNV;
17248 
17249     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eIndirectCommandsLayoutNV;
17250 
17251   public:
IndirectCommandsLayoutNV()17252     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() VULKAN_HPP_NOEXCEPT
17253       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
17254     {}
17255 
IndirectCommandsLayoutNV(std::nullptr_t)17256     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17257       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
17258     {}
17259 
IndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)17260     VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT
17261       : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV )
17262     {}
17263 
17264 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)17265     IndirectCommandsLayoutNV & operator=(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV) VULKAN_HPP_NOEXCEPT
17266     {
17267       m_indirectCommandsLayoutNV = indirectCommandsLayoutNV;
17268       return *this;
17269     }
17270 #endif
17271 
operator =(std::nullptr_t)17272     IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17273     {
17274       m_indirectCommandsLayoutNV = VK_NULL_HANDLE;
17275       return *this;
17276     }
17277 
17278 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17279     auto operator<=>( IndirectCommandsLayoutNV const& ) const = default;
17280 #else
operator ==(IndirectCommandsLayoutNV const & rhs) const17281     bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17282     {
17283       return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV;
17284     }
17285 
operator !=(IndirectCommandsLayoutNV const & rhs) const17286     bool operator!=(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17287     {
17288       return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV;
17289     }
17290 
operator <(IndirectCommandsLayoutNV const & rhs) const17291     bool operator<(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17292     {
17293       return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV;
17294     }
17295 #endif
17296 
operator VkIndirectCommandsLayoutNV() const17297     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT
17298     {
17299       return m_indirectCommandsLayoutNV;
17300     }
17301 
operator bool() const17302     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17303     {
17304       return m_indirectCommandsLayoutNV != VK_NULL_HANDLE;
17305     }
17306 
operator !() const17307     bool operator!() const VULKAN_HPP_NOEXCEPT
17308     {
17309       return m_indirectCommandsLayoutNV == VK_NULL_HANDLE;
17310     }
17311 
17312   private:
17313     VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV;
17314   };
17315   static_assert( sizeof( IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), "handle and wrapper have different size!" );
17316 
17317   template <>
17318   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eIndirectCommandsLayoutNV>
17319   {
17320     using type = IndirectCommandsLayoutNV;
17321   };
17322 
17323   template <>
17324   struct CppType<ObjectType, ObjectType::eIndirectCommandsLayoutNV>
17325   {
17326     using Type = IndirectCommandsLayoutNV;
17327   };
17328 
17329   class PrivateDataSlotEXT
17330   {
17331   public:
17332     using CType = VkPrivateDataSlotEXT;
17333 
17334     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePrivateDataSlotEXT;
17335 
17336   public:
PrivateDataSlotEXT()17337     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() VULKAN_HPP_NOEXCEPT
17338       : m_privateDataSlotEXT(VK_NULL_HANDLE)
17339     {}
17340 
PrivateDataSlotEXT(std::nullptr_t)17341     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17342       : m_privateDataSlotEXT(VK_NULL_HANDLE)
17343     {}
17344 
PrivateDataSlotEXT(VkPrivateDataSlotEXT privateDataSlotEXT)17345     VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT
17346       : m_privateDataSlotEXT( privateDataSlotEXT )
17347     {}
17348 
17349 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPrivateDataSlotEXT privateDataSlotEXT)17350     PrivateDataSlotEXT & operator=(VkPrivateDataSlotEXT privateDataSlotEXT) VULKAN_HPP_NOEXCEPT
17351     {
17352       m_privateDataSlotEXT = privateDataSlotEXT;
17353       return *this;
17354     }
17355 #endif
17356 
operator =(std::nullptr_t)17357     PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17358     {
17359       m_privateDataSlotEXT = VK_NULL_HANDLE;
17360       return *this;
17361     }
17362 
17363 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17364     auto operator<=>( PrivateDataSlotEXT const& ) const = default;
17365 #else
operator ==(PrivateDataSlotEXT const & rhs) const17366     bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17367     {
17368       return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT;
17369     }
17370 
operator !=(PrivateDataSlotEXT const & rhs) const17371     bool operator!=(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17372     {
17373       return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT;
17374     }
17375 
operator <(PrivateDataSlotEXT const & rhs) const17376     bool operator<(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17377     {
17378       return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT;
17379     }
17380 #endif
17381 
operator VkPrivateDataSlotEXT() const17382     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT
17383     {
17384       return m_privateDataSlotEXT;
17385     }
17386 
operator bool() const17387     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17388     {
17389       return m_privateDataSlotEXT != VK_NULL_HANDLE;
17390     }
17391 
operator !() const17392     bool operator!() const VULKAN_HPP_NOEXCEPT
17393     {
17394       return m_privateDataSlotEXT == VK_NULL_HANDLE;
17395     }
17396 
17397   private:
17398     VkPrivateDataSlotEXT m_privateDataSlotEXT;
17399   };
17400   static_assert( sizeof( PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), "handle and wrapper have different size!" );
17401 
17402   template <>
17403   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePrivateDataSlotEXT>
17404   {
17405     using type = PrivateDataSlotEXT;
17406   };
17407 
17408   template <>
17409   struct CppType<ObjectType, ObjectType::ePrivateDataSlotEXT>
17410   {
17411     using Type = PrivateDataSlotEXT;
17412   };
17413 
17414   class RenderPass
17415   {
17416   public:
17417     using CType = VkRenderPass;
17418 
17419     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eRenderPass;
17420 
17421   public:
RenderPass()17422     VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT
17423       : m_renderPass(VK_NULL_HANDLE)
17424     {}
17425 
RenderPass(std::nullptr_t)17426     VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17427       : m_renderPass(VK_NULL_HANDLE)
17428     {}
17429 
RenderPass(VkRenderPass renderPass)17430     VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT
17431       : m_renderPass( renderPass )
17432     {}
17433 
17434 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkRenderPass renderPass)17435     RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT
17436     {
17437       m_renderPass = renderPass;
17438       return *this;
17439     }
17440 #endif
17441 
operator =(std::nullptr_t)17442     RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17443     {
17444       m_renderPass = VK_NULL_HANDLE;
17445       return *this;
17446     }
17447 
17448 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17449     auto operator<=>( RenderPass const& ) const = default;
17450 #else
operator ==(RenderPass const & rhs) const17451     bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
17452     {
17453       return m_renderPass == rhs.m_renderPass;
17454     }
17455 
operator !=(RenderPass const & rhs) const17456     bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
17457     {
17458       return m_renderPass != rhs.m_renderPass;
17459     }
17460 
operator <(RenderPass const & rhs) const17461     bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
17462     {
17463       return m_renderPass < rhs.m_renderPass;
17464     }
17465 #endif
17466 
operator VkRenderPass() const17467     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT
17468     {
17469       return m_renderPass;
17470     }
17471 
operator bool() const17472     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17473     {
17474       return m_renderPass != VK_NULL_HANDLE;
17475     }
17476 
operator !() const17477     bool operator!() const VULKAN_HPP_NOEXCEPT
17478     {
17479       return m_renderPass == VK_NULL_HANDLE;
17480     }
17481 
17482   private:
17483     VkRenderPass m_renderPass;
17484   };
17485   static_assert( sizeof( RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
17486 
17487   template <>
17488   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eRenderPass>
17489   {
17490     using type = RenderPass;
17491   };
17492 
17493   template <>
17494   struct CppType<ObjectType, ObjectType::eRenderPass>
17495   {
17496     using Type = RenderPass;
17497   };
17498 
17499   class Sampler
17500   {
17501   public:
17502     using CType = VkSampler;
17503 
17504     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSampler;
17505 
17506   public:
Sampler()17507     VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT
17508       : m_sampler(VK_NULL_HANDLE)
17509     {}
17510 
Sampler(std::nullptr_t)17511     VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17512       : m_sampler(VK_NULL_HANDLE)
17513     {}
17514 
Sampler(VkSampler sampler)17515     VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT
17516       : m_sampler( sampler )
17517     {}
17518 
17519 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSampler sampler)17520     Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT
17521     {
17522       m_sampler = sampler;
17523       return *this;
17524     }
17525 #endif
17526 
operator =(std::nullptr_t)17527     Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17528     {
17529       m_sampler = VK_NULL_HANDLE;
17530       return *this;
17531     }
17532 
17533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17534     auto operator<=>( Sampler const& ) const = default;
17535 #else
operator ==(Sampler const & rhs) const17536     bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
17537     {
17538       return m_sampler == rhs.m_sampler;
17539     }
17540 
operator !=(Sampler const & rhs) const17541     bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
17542     {
17543       return m_sampler != rhs.m_sampler;
17544     }
17545 
operator <(Sampler const & rhs) const17546     bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
17547     {
17548       return m_sampler < rhs.m_sampler;
17549     }
17550 #endif
17551 
operator VkSampler() const17552     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT
17553     {
17554       return m_sampler;
17555     }
17556 
operator bool() const17557     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17558     {
17559       return m_sampler != VK_NULL_HANDLE;
17560     }
17561 
operator !() const17562     bool operator!() const VULKAN_HPP_NOEXCEPT
17563     {
17564       return m_sampler == VK_NULL_HANDLE;
17565     }
17566 
17567   private:
17568     VkSampler m_sampler;
17569   };
17570   static_assert( sizeof( Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
17571 
17572   template <>
17573   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSampler>
17574   {
17575     using type = Sampler;
17576   };
17577 
17578   template <>
17579   struct CppType<ObjectType, ObjectType::eSampler>
17580   {
17581     using Type = Sampler;
17582   };
17583 
17584   class SamplerYcbcrConversion
17585   {
17586   public:
17587     using CType = VkSamplerYcbcrConversion;
17588 
17589     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSamplerYcbcrConversion;
17590 
17591   public:
SamplerYcbcrConversion()17592     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT
17593       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
17594     {}
17595 
SamplerYcbcrConversion(std::nullptr_t)17596     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17597       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
17598     {}
17599 
SamplerYcbcrConversion(VkSamplerYcbcrConversion samplerYcbcrConversion)17600     VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT
17601       : m_samplerYcbcrConversion( samplerYcbcrConversion )
17602     {}
17603 
17604 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSamplerYcbcrConversion samplerYcbcrConversion)17605     SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT
17606     {
17607       m_samplerYcbcrConversion = samplerYcbcrConversion;
17608       return *this;
17609     }
17610 #endif
17611 
operator =(std::nullptr_t)17612     SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17613     {
17614       m_samplerYcbcrConversion = VK_NULL_HANDLE;
17615       return *this;
17616     }
17617 
17618 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17619     auto operator<=>( SamplerYcbcrConversion const& ) const = default;
17620 #else
operator ==(SamplerYcbcrConversion const & rhs) const17621     bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
17622     {
17623       return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion;
17624     }
17625 
operator !=(SamplerYcbcrConversion const & rhs) const17626     bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
17627     {
17628       return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion;
17629     }
17630 
operator <(SamplerYcbcrConversion const & rhs) const17631     bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
17632     {
17633       return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion;
17634     }
17635 #endif
17636 
operator VkSamplerYcbcrConversion() const17637     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT
17638     {
17639       return m_samplerYcbcrConversion;
17640     }
17641 
operator bool() const17642     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17643     {
17644       return m_samplerYcbcrConversion != VK_NULL_HANDLE;
17645     }
17646 
operator !() const17647     bool operator!() const VULKAN_HPP_NOEXCEPT
17648     {
17649       return m_samplerYcbcrConversion == VK_NULL_HANDLE;
17650     }
17651 
17652   private:
17653     VkSamplerYcbcrConversion m_samplerYcbcrConversion;
17654   };
17655   static_assert( sizeof( SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" );
17656 
17657   template <>
17658   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSamplerYcbcrConversion>
17659   {
17660     using type = SamplerYcbcrConversion;
17661   };
17662 
17663   template <>
17664   struct CppType<ObjectType, ObjectType::eSamplerYcbcrConversion>
17665   {
17666     using Type = SamplerYcbcrConversion;
17667   };
17668   using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
17669 
17670   class ShaderModule
17671   {
17672   public:
17673     using CType = VkShaderModule;
17674 
17675     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eShaderModule;
17676 
17677   public:
ShaderModule()17678     VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT
17679       : m_shaderModule(VK_NULL_HANDLE)
17680     {}
17681 
ShaderModule(std::nullptr_t)17682     VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17683       : m_shaderModule(VK_NULL_HANDLE)
17684     {}
17685 
ShaderModule(VkShaderModule shaderModule)17686     VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT
17687       : m_shaderModule( shaderModule )
17688     {}
17689 
17690 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkShaderModule shaderModule)17691     ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT
17692     {
17693       m_shaderModule = shaderModule;
17694       return *this;
17695     }
17696 #endif
17697 
operator =(std::nullptr_t)17698     ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17699     {
17700       m_shaderModule = VK_NULL_HANDLE;
17701       return *this;
17702     }
17703 
17704 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17705     auto operator<=>( ShaderModule const& ) const = default;
17706 #else
operator ==(ShaderModule const & rhs) const17707     bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
17708     {
17709       return m_shaderModule == rhs.m_shaderModule;
17710     }
17711 
operator !=(ShaderModule const & rhs) const17712     bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
17713     {
17714       return m_shaderModule != rhs.m_shaderModule;
17715     }
17716 
operator <(ShaderModule const & rhs) const17717     bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
17718     {
17719       return m_shaderModule < rhs.m_shaderModule;
17720     }
17721 #endif
17722 
operator VkShaderModule() const17723     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT
17724     {
17725       return m_shaderModule;
17726     }
17727 
operator bool() const17728     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17729     {
17730       return m_shaderModule != VK_NULL_HANDLE;
17731     }
17732 
operator !() const17733     bool operator!() const VULKAN_HPP_NOEXCEPT
17734     {
17735       return m_shaderModule == VK_NULL_HANDLE;
17736     }
17737 
17738   private:
17739     VkShaderModule m_shaderModule;
17740   };
17741   static_assert( sizeof( ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
17742 
17743   template <>
17744   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eShaderModule>
17745   {
17746     using type = ShaderModule;
17747   };
17748 
17749   template <>
17750   struct CppType<ObjectType, ObjectType::eShaderModule>
17751   {
17752     using Type = ShaderModule;
17753   };
17754 
17755   class ValidationCacheEXT
17756   {
17757   public:
17758     using CType = VkValidationCacheEXT;
17759 
17760     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eValidationCacheEXT;
17761 
17762   public:
ValidationCacheEXT()17763     VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT
17764       : m_validationCacheEXT(VK_NULL_HANDLE)
17765     {}
17766 
ValidationCacheEXT(std::nullptr_t)17767     VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17768       : m_validationCacheEXT(VK_NULL_HANDLE)
17769     {}
17770 
ValidationCacheEXT(VkValidationCacheEXT validationCacheEXT)17771     VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT
17772       : m_validationCacheEXT( validationCacheEXT )
17773     {}
17774 
17775 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkValidationCacheEXT validationCacheEXT)17776     ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT
17777     {
17778       m_validationCacheEXT = validationCacheEXT;
17779       return *this;
17780     }
17781 #endif
17782 
operator =(std::nullptr_t)17783     ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17784     {
17785       m_validationCacheEXT = VK_NULL_HANDLE;
17786       return *this;
17787     }
17788 
17789 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17790     auto operator<=>( ValidationCacheEXT const& ) const = default;
17791 #else
operator ==(ValidationCacheEXT const & rhs) const17792     bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17793     {
17794       return m_validationCacheEXT == rhs.m_validationCacheEXT;
17795     }
17796 
operator !=(ValidationCacheEXT const & rhs) const17797     bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17798     {
17799       return m_validationCacheEXT != rhs.m_validationCacheEXT;
17800     }
17801 
operator <(ValidationCacheEXT const & rhs) const17802     bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17803     {
17804       return m_validationCacheEXT < rhs.m_validationCacheEXT;
17805     }
17806 #endif
17807 
operator VkValidationCacheEXT() const17808     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT
17809     {
17810       return m_validationCacheEXT;
17811     }
17812 
operator bool() const17813     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17814     {
17815       return m_validationCacheEXT != VK_NULL_HANDLE;
17816     }
17817 
operator !() const17818     bool operator!() const VULKAN_HPP_NOEXCEPT
17819     {
17820       return m_validationCacheEXT == VK_NULL_HANDLE;
17821     }
17822 
17823   private:
17824     VkValidationCacheEXT m_validationCacheEXT;
17825   };
17826   static_assert( sizeof( ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
17827 
17828   template <>
17829   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eValidationCacheEXT>
17830   {
17831     using type = ValidationCacheEXT;
17832   };
17833 
17834   template <>
17835   struct CppType<ObjectType, ObjectType::eValidationCacheEXT>
17836   {
17837     using Type = ValidationCacheEXT;
17838   };
17839 
17840   class Queue
17841   {
17842   public:
17843     using CType = VkQueue;
17844 
17845     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eQueue;
17846 
17847   public:
Queue()17848     VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT
17849       : m_queue(VK_NULL_HANDLE)
17850     {}
17851 
Queue(std::nullptr_t)17852     VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17853       : m_queue(VK_NULL_HANDLE)
17854     {}
17855 
Queue(VkQueue queue)17856     VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT
17857       : m_queue( queue )
17858     {}
17859 
17860 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueue queue)17861     Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT
17862     {
17863       m_queue = queue;
17864       return *this;
17865     }
17866 #endif
17867 
operator =(std::nullptr_t)17868     Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17869     {
17870       m_queue = VK_NULL_HANDLE;
17871       return *this;
17872     }
17873 
17874 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17875     auto operator<=>( Queue const& ) const = default;
17876 #else
operator ==(Queue const & rhs) const17877     bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
17878     {
17879       return m_queue == rhs.m_queue;
17880     }
17881 
operator !=(Queue const & rhs) const17882     bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
17883     {
17884       return m_queue != rhs.m_queue;
17885     }
17886 
operator <(Queue const & rhs) const17887     bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
17888     {
17889       return m_queue < rhs.m_queue;
17890     }
17891 #endif
17892 
17893     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17894     void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17895 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17896     template<typename Allocator = std::allocator<CheckpointDataNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17897     std::vector<CheckpointDataNV,Allocator> getCheckpointDataNV(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
17898     template<typename Allocator = std::allocator<CheckpointDataNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17899     std::vector<CheckpointDataNV,Allocator> getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
17900 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17901 
17902     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17903     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17904 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17905     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17906     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17907 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17908 
17909     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17910     Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17911 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17912     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17913     typename ResultValueType<void>::type bindSparse( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
17914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17915 
17916     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17917     void endDebugUtilsLabelEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17918 
17919     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17920     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17921 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17922     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17923     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17924 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17925 
17926     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17927     Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17928 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17929     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17930     Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
17931 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17932 
17933 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
17934     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17935     Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17936 #else
17937     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17938     typename ResultValueType<void>::type setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
17939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17940 
17941     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17942     Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17944     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17945     typename ResultValueType<void>::type submit( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
17946 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17947 
17948 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
17949     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17950     Result waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
17951 #else
17952     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
17953     typename ResultValueType<void>::type waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
17954 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17955 
operator VkQueue() const17956     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT
17957     {
17958       return m_queue;
17959     }
17960 
operator bool() const17961     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17962     {
17963       return m_queue != VK_NULL_HANDLE;
17964     }
17965 
operator !() const17966     bool operator!() const VULKAN_HPP_NOEXCEPT
17967     {
17968       return m_queue == VK_NULL_HANDLE;
17969     }
17970 
17971   private:
17972     VkQueue m_queue;
17973   };
17974   static_assert( sizeof( Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
17975 
17976   template <>
17977   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueue>
17978   {
17979     using type = Queue;
17980   };
17981 
17982   template <>
17983   struct CppType<ObjectType, ObjectType::eQueue>
17984   {
17985     using Type = Queue;
17986   };
17987 
17988 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17989   class Device;
17990   template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
17991   using UniqueAccelerationStructureKHR = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
17992   using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
17993   template <typename Dispatch> class UniqueHandleTraits<Buffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
17994   using UniqueBuffer = UniqueHandle<Buffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
17995   template <typename Dispatch> class UniqueHandleTraits<BufferView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
17996   using UniqueBufferView = UniqueHandle<BufferView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
17997   template <typename Dispatch> class UniqueHandleTraits<CommandBuffer, Dispatch> { public: using deleter = PoolFree<Device, CommandPool, Dispatch>; };
17998   using UniqueCommandBuffer = UniqueHandle<CommandBuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
17999   template <typename Dispatch> class UniqueHandleTraits<CommandPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18000   using UniqueCommandPool = UniqueHandle<CommandPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18001 #ifdef VK_ENABLE_BETA_EXTENSIONS
18002   template <typename Dispatch> class UniqueHandleTraits<DeferredOperationKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18003   using UniqueDeferredOperationKHR = UniqueHandle<DeferredOperationKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18004 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18005   template <typename Dispatch> class UniqueHandleTraits<DescriptorPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18006   using UniqueDescriptorPool = UniqueHandle<DescriptorPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18007   template <typename Dispatch> class UniqueHandleTraits<DescriptorSet, Dispatch> { public: using deleter = PoolFree<Device, DescriptorPool, Dispatch>; };
18008   using UniqueDescriptorSet = UniqueHandle<DescriptorSet, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18009   template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18010   using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18011   template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18012   using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18013   using UniqueDescriptorUpdateTemplateKHR = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18014   template <typename Dispatch> class UniqueHandleTraits<DeviceMemory, Dispatch> { public: using deleter = ObjectFree<Device, Dispatch>; };
18015   using UniqueDeviceMemory = UniqueHandle<DeviceMemory, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18016   template <typename Dispatch> class UniqueHandleTraits<Event, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18017   using UniqueEvent = UniqueHandle<Event, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18018   template <typename Dispatch> class UniqueHandleTraits<Fence, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18019   using UniqueFence = UniqueHandle<Fence, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18020   template <typename Dispatch> class UniqueHandleTraits<Framebuffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18021   using UniqueFramebuffer = UniqueHandle<Framebuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18022   template <typename Dispatch> class UniqueHandleTraits<Image, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18023   using UniqueImage = UniqueHandle<Image, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18024   template <typename Dispatch> class UniqueHandleTraits<ImageView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18025   using UniqueImageView = UniqueHandle<ImageView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18026   template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18027   using UniqueIndirectCommandsLayoutNV = UniqueHandle<IndirectCommandsLayoutNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18028   template <typename Dispatch> class UniqueHandleTraits<Pipeline, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18029   using UniquePipeline = UniqueHandle<Pipeline, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18030   template <typename Dispatch> class UniqueHandleTraits<PipelineCache, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18031   using UniquePipelineCache = UniqueHandle<PipelineCache, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18032   template <typename Dispatch> class UniqueHandleTraits<PipelineLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18033   using UniquePipelineLayout = UniqueHandle<PipelineLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18034   template <typename Dispatch> class UniqueHandleTraits<PrivateDataSlotEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18035   using UniquePrivateDataSlotEXT = UniqueHandle<PrivateDataSlotEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18036   template <typename Dispatch> class UniqueHandleTraits<QueryPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18037   using UniqueQueryPool = UniqueHandle<QueryPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18038   template <typename Dispatch> class UniqueHandleTraits<RenderPass, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18039   using UniqueRenderPass = UniqueHandle<RenderPass, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18040   template <typename Dispatch> class UniqueHandleTraits<Sampler, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18041   using UniqueSampler = UniqueHandle<Sampler, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18042   template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18043   using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18044   using UniqueSamplerYcbcrConversionKHR = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18045   template <typename Dispatch> class UniqueHandleTraits<Semaphore, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18046   using UniqueSemaphore = UniqueHandle<Semaphore, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18047   template <typename Dispatch> class UniqueHandleTraits<ShaderModule, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18048   using UniqueShaderModule = UniqueHandle<ShaderModule, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18049   template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18050   using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18051   template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
18052   using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
18053 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18054 
18055   class Device
18056   {
18057   public:
18058     using CType = VkDevice;
18059 
18060     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDevice;
18061 
18062   public:
Device()18063     VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT
18064       : m_device(VK_NULL_HANDLE)
18065     {}
18066 
Device(std::nullptr_t)18067     VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18068       : m_device(VK_NULL_HANDLE)
18069     {}
18070 
Device(VkDevice device)18071     VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT
18072       : m_device( device )
18073     {}
18074 
18075 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDevice device)18076     Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT
18077     {
18078       m_device = device;
18079       return *this;
18080     }
18081 #endif
18082 
operator =(std::nullptr_t)18083     Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18084     {
18085       m_device = VK_NULL_HANDLE;
18086       return *this;
18087     }
18088 
18089 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18090     auto operator<=>( Device const& ) const = default;
18091 #else
operator ==(Device const & rhs) const18092     bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT
18093     {
18094       return m_device == rhs.m_device;
18095     }
18096 
operator !=(Device const & rhs) const18097     bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
18098     {
18099       return m_device != rhs.m_device;
18100     }
18101 
operator <(Device const & rhs) const18102     bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
18103     {
18104       return m_device < rhs.m_device;
18105     }
18106 #endif
18107 
18108 #ifdef VK_USE_PLATFORM_WIN32_KHR
18109 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
18110     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18111     Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18112 #else
18113     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18114     typename ResultValueType<void>::type acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18116 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
18117 
18118     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18119     Result acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18120 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18121     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18122     ResultValue<uint32_t> acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18123 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18124 
18125     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18126     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 ) const VULKAN_HPP_NOEXCEPT;
18127 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18128     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18129     ResultValue<uint32_t> acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18130 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18131 
18132     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18133     Result acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18134 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18135     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18136     typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>::type acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18137 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18138 
18139     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18140     Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18141 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18142     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18143     typename ResultValueType<void>::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18144 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18145 
18146     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18147     Result allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18148 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18149     template<typename Allocator = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18150     typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18151     template<typename Allocator = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18152     typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
18153 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18154     template<typename Allocator = std::allocator<UniqueCommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18155     typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18156     template<typename Allocator = std::allocator<UniqueCommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18157     typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
18158 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18159 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18160 
18161     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18162     Result allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18163 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18164     template<typename Allocator = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18165     typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18166     template<typename Allocator = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18167     typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
18168 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18169     template<typename Allocator = std::allocator<UniqueDescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18170     typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18171     template<typename Allocator = std::allocator<UniqueDescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18172     typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
18173 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18174 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18175 
18176     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18177     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 ) const VULKAN_HPP_NOEXCEPT;
18178 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18179     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18180     typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceMemory>::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18181 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18182     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18183     typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18184 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18185 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18186 
18187     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18188     Result bindAccelerationStructureMemoryKHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18189 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18190     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18191     typename ResultValueType<void>::type bindAccelerationStructureMemoryKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18192 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18193 
18194     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18195     Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18197     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18198     typename ResultValueType<void>::type bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18200 
18201 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
18202     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18203     Result bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18204 #else
18205     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18206     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 ) const;
18207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18208 
18209     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18210     Result bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18211 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18212     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18213     typename ResultValueType<void>::type bindBufferMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18214 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18215 
18216     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18217     Result bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18218 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18219     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18220     typename ResultValueType<void>::type bindBufferMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18222 
18223 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
18224     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18225     Result bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18226 #else
18227     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18228     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 ) const;
18229 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18230 
18231     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18232     Result bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18234     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18235     typename ResultValueType<void>::type bindImageMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18236 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18237 
18238     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18239     Result bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18240 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18241     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18242     typename ResultValueType<void>::type bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18243 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18244 
18245 #ifdef VK_ENABLE_BETA_EXTENSIONS
18246     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18247     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 ) const VULKAN_HPP_NOEXCEPT;
18248 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18249     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18250     Result buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const> pOffsetInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18251 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18252 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18253 
18254 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
18255     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18256     Result compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18257 #else
18258     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18259     typename ResultValueType<void>::type compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18261 
18262 #ifdef VK_ENABLE_BETA_EXTENSIONS
18263     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18264     Result copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18265 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18266     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18267     Result copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18268 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18269 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18270 
18271 #ifdef VK_ENABLE_BETA_EXTENSIONS
18272     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18273     Result copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18274 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18275     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18276     Result copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18278 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18279 
18280 #ifdef VK_ENABLE_BETA_EXTENSIONS
18281     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18282     Result copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18283 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18284     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18285     Result copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18286 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18287 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18288 
18289 #ifdef VK_ENABLE_BETA_EXTENSIONS
18290     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18291     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 ) const VULKAN_HPP_NOEXCEPT;
18292 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18293     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18294     typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>::type createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18295 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18296     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18297     typename ResultValueType<UniqueHandle<AccelerationStructureKHR,Dispatch>>::type createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18298 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18299 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18300 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18301 
18302     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18303     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 ) const VULKAN_HPP_NOEXCEPT;
18304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18305     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18306     typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18307 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18308     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18309     typename ResultValueType<UniqueHandle<AccelerationStructureNV,Dispatch>>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18310 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18311 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18312 
18313     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18314     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 ) const VULKAN_HPP_NOEXCEPT;
18315 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18316     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18317     typename ResultValueType<VULKAN_HPP_NAMESPACE::Buffer>::type createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18318 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18319     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18320     typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18321 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18322 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18323 
18324     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18325     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 ) const VULKAN_HPP_NOEXCEPT;
18326 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18327     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18328     typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferView>::type createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18329 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18330     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18331     typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18332 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18333 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18334 
18335     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18336     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 ) const VULKAN_HPP_NOEXCEPT;
18337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18338     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18339     typename ResultValueType<VULKAN_HPP_NAMESPACE::CommandPool>::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18340 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18341     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18342     typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18343 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18344 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18345 
18346     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18347     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 ) const VULKAN_HPP_NOEXCEPT;
18348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18349     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18350     ResultValue<std::vector<Pipeline,Allocator>> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18351     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18352     ResultValue<std::vector<Pipeline,Allocator>> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18353     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18354     ResultValue<Pipeline> createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18355 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18356     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18357     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18358     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18359     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18360     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18361     ResultValue<UniqueHandle<Pipeline,Dispatch>> createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18362 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18364 
18365 #ifdef VK_ENABLE_BETA_EXTENSIONS
18366     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18367     Result createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18368 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18369     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18370     typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18371 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18372     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18373     typename ResultValueType<UniqueHandle<DeferredOperationKHR,Dispatch>>::type createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18374 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18375 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18376 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18377 
18378     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18379     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 ) const VULKAN_HPP_NOEXCEPT;
18380 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18381     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18382     typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorPool>::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18383 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18384     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18385     typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18386 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18388 
18389     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18390     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 ) const VULKAN_HPP_NOEXCEPT;
18391 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18392     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18393     typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18394 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18395     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18396     typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18397 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18398 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18399 
18400     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18401     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 ) const VULKAN_HPP_NOEXCEPT;
18402 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18403     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18404     typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18405 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18406     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18407     typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18408 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18409 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18410 
18411     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18412     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 ) const VULKAN_HPP_NOEXCEPT;
18413 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18414     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18415     typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18416 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18417     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18418     typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18419 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18420 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18421 
18422     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18423     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 ) const VULKAN_HPP_NOEXCEPT;
18424 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18425     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18426     typename ResultValueType<VULKAN_HPP_NAMESPACE::Event>::type createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18427 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18428     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18429     typename ResultValueType<UniqueHandle<Event,Dispatch>>::type createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18430 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18431 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18432 
18433     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18434     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 ) const VULKAN_HPP_NOEXCEPT;
18435 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18436     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18437     typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18438 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18439     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18440     typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18441 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18443 
18444     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18445     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 ) const VULKAN_HPP_NOEXCEPT;
18446 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18447     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18448     typename ResultValueType<VULKAN_HPP_NAMESPACE::Framebuffer>::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18449 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18450     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18451     typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18452 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18453 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18454 
18455     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18456     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 ) const VULKAN_HPP_NOEXCEPT;
18457 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18458     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18459     ResultValue<std::vector<Pipeline,Allocator>> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18460     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18461     ResultValue<std::vector<Pipeline,Allocator>> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18462     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18463     ResultValue<Pipeline> createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18464 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18465     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18466     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18467     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18468     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18469     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18470     ResultValue<UniqueHandle<Pipeline,Dispatch>> createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18471 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18472 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18473 
18474     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18475     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 ) const VULKAN_HPP_NOEXCEPT;
18476 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18477     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18478     typename ResultValueType<VULKAN_HPP_NAMESPACE::Image>::type createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18479 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18480     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18481     typename ResultValueType<UniqueHandle<Image,Dispatch>>::type createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18482 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18484 
18485     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18486     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 ) const VULKAN_HPP_NOEXCEPT;
18487 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18488     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18489     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageView>::type createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18490 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18491     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18492     typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18493 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18495 
18496     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18497     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 ) const VULKAN_HPP_NOEXCEPT;
18498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18499     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18500     typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>::type createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18501 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18502     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18503     typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNV,Dispatch>>::type createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18504 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18505 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18506 
18507     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18508     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 ) const VULKAN_HPP_NOEXCEPT;
18509 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18510     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18511     typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineCache>::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18512 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18513     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18514     typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18515 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18516 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18517 
18518     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18519     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 ) const VULKAN_HPP_NOEXCEPT;
18520 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18521     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18522     typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineLayout>::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18523 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18524     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18525     typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18526 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18527 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18528 
18529     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18530     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 ) const VULKAN_HPP_NOEXCEPT;
18531 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18532     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18533     typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>::type createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18534 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18535     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18536     typename ResultValueType<UniqueHandle<PrivateDataSlotEXT,Dispatch>>::type createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18537 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18539 
18540     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18541     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 ) const VULKAN_HPP_NOEXCEPT;
18542 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18543     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18544     typename ResultValueType<VULKAN_HPP_NAMESPACE::QueryPool>::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18545 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18546     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18547     typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18548 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18550 
18551 #ifdef VK_ENABLE_BETA_EXTENSIONS
18552     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18553     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 ) const VULKAN_HPP_NOEXCEPT;
18554 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18555     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18556     ResultValue<std::vector<Pipeline,Allocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18557     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18558     ResultValue<std::vector<Pipeline,Allocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18559     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18560     ResultValue<Pipeline> createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18561 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18562     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18563     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18564     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18565     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18566     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18567     ResultValue<UniqueHandle<Pipeline,Dispatch>> createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18568 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18569 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18570 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18571 
18572     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18573     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 ) const VULKAN_HPP_NOEXCEPT;
18574 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18575     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18576     ResultValue<std::vector<Pipeline,Allocator>> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18577     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18578     ResultValue<std::vector<Pipeline,Allocator>> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18579     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18580     ResultValue<Pipeline> createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18581 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18582     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18583     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18584     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18585     ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18586     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18587     ResultValue<UniqueHandle<Pipeline,Dispatch>> createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18588 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18589 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18590 
18591     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18592     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 ) const VULKAN_HPP_NOEXCEPT;
18593 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18594     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18595     typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18596 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18597     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18598     typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18599 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18600 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18601 
18602     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18603     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 ) const VULKAN_HPP_NOEXCEPT;
18604 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18605     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18606     typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18607 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18608     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18609     typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18610 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18611 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18612 
18613     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18614     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 ) const VULKAN_HPP_NOEXCEPT;
18615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18616     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18617     typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18618 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18619     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18620     typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18621 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18622 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18623 
18624     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18625     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 ) const VULKAN_HPP_NOEXCEPT;
18626 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18627     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18628     typename ResultValueType<VULKAN_HPP_NAMESPACE::Sampler>::type createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18629 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18630     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18631     typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18632 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18633 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18634 
18635     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18636     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 ) const VULKAN_HPP_NOEXCEPT;
18637 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18638     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18639     typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18640 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18641     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18642     typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18643 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18645 
18646     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18647     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 ) const VULKAN_HPP_NOEXCEPT;
18648 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18649     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18650     typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18651 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18652     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18653     typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18654 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18655 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18656 
18657     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18658     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 ) const VULKAN_HPP_NOEXCEPT;
18659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18660     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18661     typename ResultValueType<VULKAN_HPP_NAMESPACE::Semaphore>::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18662 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18663     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18664     typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18665 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18667 
18668     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18669     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 ) const VULKAN_HPP_NOEXCEPT;
18670 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18671     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18672     typename ResultValueType<VULKAN_HPP_NAMESPACE::ShaderModule>::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18673 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18674     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18675     typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18676 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18677 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18678 
18679     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18680     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 ) const VULKAN_HPP_NOEXCEPT;
18681 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18682     template<typename Allocator = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18683     typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18684     template<typename Allocator = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18685     typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18686     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18687     typename ResultValueType<SwapchainKHR>::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18688 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18689     template<typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18690     typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18691     template<typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18692     typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
18693     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18694     typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18695 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18696 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18697 
18698     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18699     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 ) const VULKAN_HPP_NOEXCEPT;
18700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18701     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18702     typename ResultValueType<VULKAN_HPP_NAMESPACE::SwapchainKHR>::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18703 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18704     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18705     typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18706 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18708 
18709     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18710     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 ) const VULKAN_HPP_NOEXCEPT;
18711 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18712     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18713     typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18714 #ifndef VULKAN_HPP_NO_SMART_HANDLE
18715     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18716     typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18717 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
18718 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18719 
18720     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18721     Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18722 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18723     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18724     typename ResultValueType<void>::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18725 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18726 
18727     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18728     Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18730     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18731     typename ResultValueType<void>::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18733 
18734 #ifdef VK_ENABLE_BETA_EXTENSIONS
18735 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
18736     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18737     Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18738 #else
18739     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18740     Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
18741 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18742 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18743 
18744     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18745     void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18746 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18747     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18748     void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18749 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18750 
18751     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18752     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18754     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18755     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18757 
18758     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18759     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18760 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18761     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18762     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18763 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18764 
18765     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18766     void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18768     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18769     void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18770 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18771 
18772     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18773     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18774 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18775     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18776     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18778 
18779     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18780     void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18782     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18783     void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18785 
18786     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18787     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18788 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18789     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18790     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18791 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18792 
18793     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18794     void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18796     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18797     void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18799 
18800     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18801     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18802 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18803     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18804     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18805 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18806 
18807 #ifdef VK_ENABLE_BETA_EXTENSIONS
18808     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18809     void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18810 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18811     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18812     void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18813 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18814 
18815     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18816     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18817 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18818     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18819     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18820 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18821 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
18822 
18823     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18824     void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18825 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18826     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18827     void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18828 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18829 
18830     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18831     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18832 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18833     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18834     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18836 
18837     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18838     void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18839 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18840     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18841     void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18842 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18843 
18844     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18845     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18846 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18847     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18848     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18849 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18850 
18851     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18852     void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18853 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18854     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18855     void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18856 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18857 
18858     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18859     void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18860 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18861     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18862     void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18863 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18864 
18865     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18866     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18867 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18868     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18869     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18870 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18871 
18872     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18873     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18875     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18876     void destroy( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18877 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18878 
18879     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18880     void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18881 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18882     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18883     void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18884 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18885 
18886     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18887     void destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18888 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18889     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18890     void destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18891 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18892 
18893     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18894     void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18895 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18896     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18897     void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18898 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18899 
18900     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18901     void destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18902 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18903     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18904     void destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18905 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18906 
18907     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18908     void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18910     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18911     void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18912 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18913 
18914     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18915     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18916 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18917     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18918     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18919 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18920 
18921     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18922     void destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18924     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18925     void destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18927 
18928     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18929     void destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18930 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18931     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18932     void destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18933 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18934 
18935     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18936     void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18937 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18938     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18939     void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18940 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18941 
18942     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18943     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18945     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18946     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18947 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18948 
18949     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18950     void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18951 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18952     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18953     void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18954 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18955 
18956     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18957     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18959     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18960     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18961 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18962 
18963     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18964     void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18965 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18966     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18967     void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18968 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18969 
18970     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18971     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18972 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18973     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18974     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18975 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18976 
18977     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18978     void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18980     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18981     void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18982 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18983 
18984     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18985     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18987     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18988     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18989 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18990 
18991     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18992     void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18993 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18994     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18995     void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
18996 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18997 
18998     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
18999     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19000 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19001     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19002     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19003 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19004 
19005     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19006     void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19007 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19008     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19009     void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19010 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19011 
19012     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19013     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19015     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19016     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19017 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19018 
19019     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19020     void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19021 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19022     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19023     void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19025 
19026     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19027     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19028 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19029     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19030     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19031 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19032 
19033     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19034     void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19035 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19036     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19037     void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19038 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19039 
19040     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19041     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19043     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19044     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19045 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19046 
19047     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19048     void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19049 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19050     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19051     void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19052 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19053 
19054     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19055     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19056 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19057     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19058     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19059 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19060 
19061     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19062     void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19063 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19064     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19065     void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19066 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19067 
19068     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19069     void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19070 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19071     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19072     void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19073 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19074 
19075     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19076     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19077 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19078     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19079     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19081 
19082     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19083     void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19084 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19085     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19086     void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19087 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19088 
19089     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19090     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19091 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19092     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19093     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19094 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19095 
19096     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19097     void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19098 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19099     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19100     void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19101 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19102 
19103     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19104     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19105 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19106     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19107     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19108 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19109 
19110     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19111     void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19112 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19113     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19114     void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19116 
19117     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19118     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19119 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19120     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19121     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19122 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19123 
19124     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19125     void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19126 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19127     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19128     void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19129 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19130 
19131     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19132     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19133 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19134     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19135     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19137 
19138 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19139     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19140     Result waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19141 #else
19142     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19143     typename ResultValueType<void>::type waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19144 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19145 
19146     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19147     Result displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19148 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19149     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19150     typename ResultValueType<void>::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19151 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19152 
19153     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19154     Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19156     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19157     typename ResultValueType<void>::type flushMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> memoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19158 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19159 
19160     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19161     void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19162 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19163     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19164     void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19165 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19166 
19167     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19168     void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19169 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19170     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19171     void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19172 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19173 
19174     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19175     Result freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19176 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19177     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19178     typename ResultValueType<void>::type freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19179 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19180 
19181     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19182     Result free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19183 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19184     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19185     typename ResultValueType<void>::type free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19186 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19187 
19188     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19189     void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19190 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19191     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19192     void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19193 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19194 
19195     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19196     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19197 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19198     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19199     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19200 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19201 
19202 #ifdef VK_ENABLE_BETA_EXTENSIONS
19203     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19204     DeviceAddress getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19205 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19206     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19207     DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19208 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19209 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
19210 
19211     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19212     Result getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19213 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19214     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19215     typename ResultValueType<void>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, ArrayProxy<T> data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19216 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19217 
19218 #ifdef VK_ENABLE_BETA_EXTENSIONS
19219     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19220     void getAccelerationStructureMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19221 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19222     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19223     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19224     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19225     StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19227 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
19228 
19229     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19230     void getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19231 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19232     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19233     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19234     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19235     StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19236 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19237 
19238 #ifdef VK_USE_PLATFORM_ANDROID_KHR
19239     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19240     Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19242     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19243     typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19244     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19245     typename ResultValueType<StructureChain<X, Y, Z...>>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19246 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19247 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
19248 
19249     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19250     DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19251 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19252     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19253     DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19254 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19255 
19256     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19257     DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19259     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19260     DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19261 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19262 
19263     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19264     DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19265 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19266     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19267     DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19268 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19269 
19270     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19271     void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19272 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19273     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19274     VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19275 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19276 
19277     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19278     void getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19279 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19280     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19281     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19282     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19283     StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19284 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19285 
19286     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19287     void getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19288 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19289     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19290     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19291     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19292     StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19293 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19294 
19295     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19296     uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19297 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19298     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19299     uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19300 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19301 
19302     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19303     uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19305     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19306     uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19307 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19308 
19309     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19310     Result getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19312     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19313     typename ResultValueType<uint64_t>::type getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> timestampInfos, ArrayProxy<uint64_t> timestamps, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19315 
19316 #ifdef VK_ENABLE_BETA_EXTENSIONS
19317     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19318     uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19319 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
19320 
19321 #ifdef VK_ENABLE_BETA_EXTENSIONS
19322 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19323     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19324     Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19325 #else
19326     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19327     Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19329 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
19330 
19331     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19332     void getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19333 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19334     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19335     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19336     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19337     StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19338 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19339 
19340     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19341     void getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19342 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19343     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19344     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19345     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19346     StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19347 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19348 
19349 #ifdef VK_ENABLE_BETA_EXTENSIONS
19350     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19351     Result getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19353     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19354     typename ResultValueType<void>::type getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19356 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
19357 
19358     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19359     void getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19361     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19362     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19364 
19365     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19366     void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19368     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19369     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19370 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19371 
19372     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19373     Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19374 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19375     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19376     typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type getGroupPresentCapabilitiesKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19377 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19378 
19379 #ifdef VK_USE_PLATFORM_WIN32_KHR
19380     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19381     Result getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19382 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19383     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19384     typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19385 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19386 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19387 
19388     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19389     Result getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19390 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19391     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19392     typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19393 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19394 
19395     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19396     void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19398     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19399     VULKAN_HPP_NAMESPACE::DeviceSize getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19400 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19401 
19402     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19403     uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19404 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19405     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19406     uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19407 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19408 
19409     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19410     uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19411 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19412     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19413     uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19414 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19415 
19416     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19417     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19418 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19419     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19420     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19422 
19423     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19424     void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19425 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19426     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19427     VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19428 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19429 
19430     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19431     void getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19432 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19433     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19434     VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19435 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19436 
19437 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19438     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19439     Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19440 #else
19441     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19442     Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19443 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19444 
19445     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19446     Result getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19447 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19448     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19449     typename ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19451 
19452 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19453     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19454     Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19455 #else
19456     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19457     Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19458 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19459 
19460 #ifdef VK_USE_PLATFORM_WIN32_KHR
19461     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19462     Result getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19463 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19464     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19465     typename ResultValueType<HANDLE>::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19466 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19467 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19468 
19469     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19470     void getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19472     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19473     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19474     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19475     StructureChain<X, Y, Z...> getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19476 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19477 
19478     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19479     Result getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19480 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19481     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19482     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19484 
19485     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19486     void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19487 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19488     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19489     VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19490 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19491 
19492     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19493     void getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19494 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19495     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19496     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19497     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19498     StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19499 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19500 
19501     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19502     void getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19504     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19505     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19506     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19507     StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19508 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19509 
19510     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19511     void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19512 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19513     template<typename Allocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19514     std::vector<SparseImageMemoryRequirements,Allocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19515     template<typename Allocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19516     std::vector<SparseImageMemoryRequirements,Allocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Allocator const& vectorAllocator, Dispatch const &d ) const;
19517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19518 
19519     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19520     void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19522     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19523     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19524     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19525     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const;
19526 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19527 
19528     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19529     void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19530 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19531     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19532     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19533     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19534     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const;
19535 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19536 
19537     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19538     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 ) const VULKAN_HPP_NOEXCEPT;
19539 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19540     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19541     VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19542 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19543 
19544     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19545     Result getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19546 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19547     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19548     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>::type getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19550 
19551     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19552     uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19553 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19554     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19555     uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19557 
19558 #ifdef VK_USE_PLATFORM_ANDROID_KHR
19559     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19560     Result getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19561 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19562     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19563     typename ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19565 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
19566 
19567     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19568     Result getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19569 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19570     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19571     typename ResultValueType<int>::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19572 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19573 
19574     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19575     Result getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19576 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19577     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19578     typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR>::type getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19579 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19580 
19581     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19582     Result getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19583 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19584     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19585     typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>::type getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19587 
19588 #ifdef VK_USE_PLATFORM_WIN32_KHR
19589     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19590     Result getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19592     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19593     typename ResultValueType<HANDLE>::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19595 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19596 
19597 #ifdef VK_USE_PLATFORM_WIN32_KHR
19598     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19599     Result getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19600 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19601     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19602     typename ResultValueType<HANDLE>::type getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19603 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19604 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19605 
19606 #ifdef VK_USE_PLATFORM_WIN32_KHR
19607     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19608     Result getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19609 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19610     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19611     typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>::type getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19612 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19613 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19614 
19615     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19616     Result getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19617 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19618     template<typename Allocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19619     typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19620     template<typename Allocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19621     typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const;
19622 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19623 
19624     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19625     Result getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19626 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19627     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19628     typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL>::type getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19629 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19630 
19631     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19632     Result getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19633 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19634     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19635     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19636     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19637     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const;
19638 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19639 
19640     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19641     Result getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19642 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19643     template<typename Allocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19644     typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19645     template<typename Allocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19646     typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
19647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19648 
19649     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19650     Result getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19651 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19652     template<typename Allocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19653     typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19654     template<typename Allocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19655     typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
19656 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19657 
19658     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19659     Result getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19660 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19661     template<typename Allocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19662     typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19663     template<typename Allocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19664     typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
19665 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19666 
19667     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19668     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 ) const VULKAN_HPP_NOEXCEPT;
19669 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19670     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19671     uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19672 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19673 
19674     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19675     Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19676 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19677     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19678     Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19679 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19680 
19681 #ifdef VK_ENABLE_BETA_EXTENSIONS
19682     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19683     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 ) const VULKAN_HPP_NOEXCEPT;
19684 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19685     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19686     typename ResultValueType<void>::type getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19687 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19688 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
19689 
19690     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19691     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 ) const VULKAN_HPP_NOEXCEPT;
19692 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19693     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19694     typename ResultValueType<void>::type getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19695 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19696 
19697     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19698     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 ) const VULKAN_HPP_NOEXCEPT;
19699 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19700     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19701     typename ResultValueType<void>::type getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19702 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19703 
19704     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19705     Result getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19706 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19707     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19708     typename ResultValueType<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>::type getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19709 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19710 
19711     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19712     void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19713 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19714     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19715     VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19717 
19718     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19719     Result getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19721     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19722     typename ResultValueType<uint64_t>::type getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19724 
19725     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19726     Result getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19727 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19728     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19729     typename ResultValueType<uint64_t>::type getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19730 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19731 
19732     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19733     Result getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19734 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19735     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19736     typename ResultValueType<int>::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19737 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19738 
19739 #ifdef VK_USE_PLATFORM_WIN32_KHR
19740     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19741     Result getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19742 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19743     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19744     typename ResultValueType<HANDLE>::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19745 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19746 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19747 
19748     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19749     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 ) const VULKAN_HPP_NOEXCEPT;
19750 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19751     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19752     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 ) const;
19753     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19754     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 ) const;
19755 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19756 
19757     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19758     Result getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19759 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19760     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19761     typename ResultValueType<uint64_t>::type getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19762 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19763 
19764     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19765     Result getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19766 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19767     template<typename Allocator = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19768     typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19769     template<typename Allocator = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19770     typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const;
19771 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19772 
19773 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19774     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19775     Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19776 #else
19777     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19778     Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19779 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19780 
19781     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19782     Result getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19783 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19784     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19785     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19786     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19787     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const;
19788 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19789 
19790     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19791     Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19793     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19794     typename ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19795 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19796 
19797 #ifdef VK_USE_PLATFORM_WIN32_KHR
19798     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19799     Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19800 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19801     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19802     typename ResultValueType<void>::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19803 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19804 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19805 
19806     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19807     Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19808 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19809     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19810     typename ResultValueType<void>::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19811 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19812 
19813 #ifdef VK_USE_PLATFORM_WIN32_KHR
19814     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19815     Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19817     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19818     typename ResultValueType<void>::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19820 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19821 
19822     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19823     Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19824 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19825     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19826     typename ResultValueType<void>::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19827 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19828 
19829     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19830     Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19831 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19832     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19833     typename ResultValueType<void>::type invalidateMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> memoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19834 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19835 
19836     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19837     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 ) const VULKAN_HPP_NOEXCEPT;
19838 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19839     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19840     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 = MemoryMapFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19841 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19842 
19843     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19844     Result mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19845 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19846     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19847     typename ResultValueType<void>::type mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> srcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19848 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19849 
19850     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19851     Result mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19852 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19853     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19854     typename ResultValueType<void>::type mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> srcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19855 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19856 
19857     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19858     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 ) const VULKAN_HPP_NOEXCEPT;
19859 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19860     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19861     typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19862 #ifndef VULKAN_HPP_NO_SMART_HANDLE
19863     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19864     typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19865 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
19866 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19867 
19868     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19869     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 ) const VULKAN_HPP_NOEXCEPT;
19870 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19871     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19872     typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19873 #ifndef VULKAN_HPP_NO_SMART_HANDLE
19874     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19875     typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19876 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
19877 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19878 
19879 #ifdef VK_USE_PLATFORM_WIN32_KHR
19880 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19881     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19882     Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19883 #else
19884     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19885     typename ResultValueType<void>::type releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19886 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19887 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
19888 
19889 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19890     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19891     Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19892 #else
19893     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19894     typename ResultValueType<void>::type releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19895 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19896 
19897     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19898     void releaseProfilingLockKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19899 
19900 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19901     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19902     Result resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19903 #else
19904     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19905     typename ResultValueType<void>::type resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19906 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19907 
19908 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19909     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19910     Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19911 #else
19912     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19913     typename ResultValueType<void>::type resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19915 
19916 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19917     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19918     Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19919 #else
19920     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19921     typename ResultValueType<void>::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19922 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19923 
19924     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19925     Result resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19926 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19927     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19928     typename ResultValueType<void>::type resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> fences, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19929 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19930 
19931     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19932     void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19933 
19934     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19935     void resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19936 
19937     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19938     Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19939 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19940     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19941     typename ResultValueType<void>::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19942 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19943 
19944     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19945     Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19946 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19947     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19948     typename ResultValueType<void>::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19949 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19950 
19951 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19952     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19953     Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19954 #else
19955     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19956     typename ResultValueType<void>::type setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19957 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19958 
19959     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19960     void setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19962     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19963     void setHdrMetadataEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains, ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> metadata, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19965 
19966     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19967     void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19968 
19969 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
19970     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19971     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 ) const VULKAN_HPP_NOEXCEPT;
19972 #else
19973     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19974     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 ) const;
19975 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19976 
19977     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19978     Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19980     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19981     typename ResultValueType<void>::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19982 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19983 
19984     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19985     Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19987     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19988     typename ResultValueType<void>::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
19989 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19990 
19991     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19992     void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19993 
19994     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19995     void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19996 
19997     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
19998     void uninitializePerformanceApiINTEL(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
19999 
20000     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20001     void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20002 
20003     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20004     void updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20005 
20006     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20007     void updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20008 
20009     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20010     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 ) const VULKAN_HPP_NOEXCEPT;
20011 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20012     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20013     void updateDescriptorSets( ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> descriptorWrites, ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> descriptorCopies, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20014 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20015 
20016     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20017     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 ) const VULKAN_HPP_NOEXCEPT;
20018 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20019     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20020     Result waitForFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20021 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20022 
20023     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20024     Result waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20025 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20026     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20027     Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20028 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20029 
20030     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20031     Result waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20032 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20033     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20034     Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20036 
20037 #ifdef VK_ENABLE_BETA_EXTENSIONS
20038     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20039     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 ) const VULKAN_HPP_NOEXCEPT;
20040 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20041     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20042     typename ResultValueType<void>::type writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy<T> data, size_t stride, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20044 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
20045 
operator VkDevice() const20046     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT
20047     {
20048       return m_device;
20049     }
20050 
operator bool() const20051     explicit operator bool() const VULKAN_HPP_NOEXCEPT
20052     {
20053       return m_device != VK_NULL_HANDLE;
20054     }
20055 
operator !() const20056     bool operator!() const VULKAN_HPP_NOEXCEPT
20057     {
20058       return m_device == VK_NULL_HANDLE;
20059     }
20060 
20061   private:
20062     VkDevice m_device;
20063   };
20064   static_assert( sizeof( Device ) == sizeof( VkDevice ), "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::eDevice>
20068   {
20069     using type = Device;
20070   };
20071 
20072   template <>
20073   struct CppType<ObjectType, ObjectType::eDevice>
20074   {
20075     using Type = Device;
20076   };
20077 
20078   class DisplayModeKHR
20079   {
20080   public:
20081     using CType = VkDisplayModeKHR;
20082 
20083     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDisplayModeKHR;
20084 
20085   public:
DisplayModeKHR()20086     VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT
20087       : m_displayModeKHR(VK_NULL_HANDLE)
20088     {}
20089 
DisplayModeKHR(std::nullptr_t)20090     VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20091       : m_displayModeKHR(VK_NULL_HANDLE)
20092     {}
20093 
DisplayModeKHR(VkDisplayModeKHR displayModeKHR)20094     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT
20095       : m_displayModeKHR( displayModeKHR )
20096     {}
20097 
20098 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayModeKHR displayModeKHR)20099     DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT
20100     {
20101       m_displayModeKHR = displayModeKHR;
20102       return *this;
20103     }
20104 #endif
20105 
operator =(std::nullptr_t)20106     DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20107     {
20108       m_displayModeKHR = VK_NULL_HANDLE;
20109       return *this;
20110     }
20111 
20112 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20113     auto operator<=>( DisplayModeKHR const& ) const = default;
20114 #else
operator ==(DisplayModeKHR const & rhs) const20115     bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
20116     {
20117       return m_displayModeKHR == rhs.m_displayModeKHR;
20118     }
20119 
operator !=(DisplayModeKHR const & rhs) const20120     bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
20121     {
20122       return m_displayModeKHR != rhs.m_displayModeKHR;
20123     }
20124 
operator <(DisplayModeKHR const & rhs) const20125     bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
20126     {
20127       return m_displayModeKHR < rhs.m_displayModeKHR;
20128     }
20129 #endif
20130 
operator VkDisplayModeKHR() const20131     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT
20132     {
20133       return m_displayModeKHR;
20134     }
20135 
operator bool() const20136     explicit operator bool() const VULKAN_HPP_NOEXCEPT
20137     {
20138       return m_displayModeKHR != VK_NULL_HANDLE;
20139     }
20140 
operator !() const20141     bool operator!() const VULKAN_HPP_NOEXCEPT
20142     {
20143       return m_displayModeKHR == VK_NULL_HANDLE;
20144     }
20145 
20146   private:
20147     VkDisplayModeKHR m_displayModeKHR;
20148   };
20149   static_assert( sizeof( DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
20150 
20151   template <>
20152   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayModeKHR>
20153   {
20154     using type = DisplayModeKHR;
20155   };
20156 
20157   template <>
20158   struct CppType<ObjectType, ObjectType::eDisplayModeKHR>
20159   {
20160     using Type = DisplayModeKHR;
20161   };
20162 
20163 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20164   template <typename Dispatch> class UniqueHandleTraits<Device, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
20165   using UniqueDevice = UniqueHandle<Device, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
20166 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20167 
20168   class PhysicalDevice
20169   {
20170   public:
20171     using CType = VkPhysicalDevice;
20172 
20173     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePhysicalDevice;
20174 
20175   public:
PhysicalDevice()20176     VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT
20177       : m_physicalDevice(VK_NULL_HANDLE)
20178     {}
20179 
PhysicalDevice(std::nullptr_t)20180     VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20181       : m_physicalDevice(VK_NULL_HANDLE)
20182     {}
20183 
PhysicalDevice(VkPhysicalDevice physicalDevice)20184     VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT
20185       : m_physicalDevice( physicalDevice )
20186     {}
20187 
20188 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPhysicalDevice physicalDevice)20189     PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT
20190     {
20191       m_physicalDevice = physicalDevice;
20192       return *this;
20193     }
20194 #endif
20195 
operator =(std::nullptr_t)20196     PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20197     {
20198       m_physicalDevice = VK_NULL_HANDLE;
20199       return *this;
20200     }
20201 
20202 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20203     auto operator<=>( PhysicalDevice const& ) const = default;
20204 #else
operator ==(PhysicalDevice const & rhs) const20205     bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
20206     {
20207       return m_physicalDevice == rhs.m_physicalDevice;
20208     }
20209 
operator !=(PhysicalDevice const & rhs) const20210     bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
20211     {
20212       return m_physicalDevice != rhs.m_physicalDevice;
20213     }
20214 
operator <(PhysicalDevice const & rhs) const20215     bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
20216     {
20217       return m_physicalDevice < rhs.m_physicalDevice;
20218     }
20219 #endif
20220 
20221 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
20222     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20223     Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20224 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20225     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20226     typename ResultValueType<Display>::type acquireXlibDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20227 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20228 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
20229 
20230     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20231     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 ) const VULKAN_HPP_NOEXCEPT;
20232 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20233     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20234     typename ResultValueType<VULKAN_HPP_NAMESPACE::Device>::type createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20235 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20236     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20237     typename ResultValueType<UniqueHandle<Device,Dispatch>>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20238 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20239 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20240 
20241     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20242     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 ) const VULKAN_HPP_NOEXCEPT;
20243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20244     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20245     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>::type createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20246 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20247 
20248     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20249     Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20250 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20251     template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20252     typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20253     template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20254     typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const;
20255 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20256 
20257     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20258     Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20259 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20260     template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20261     typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20262     template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20263     typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const;
20264 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20265 
20266     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20267     Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20268 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20269     template<typename Allocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20270     typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> counters, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20271     template<typename Allocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20272     typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> counters, Allocator const& vectorAllocator, Dispatch const &d ) const;
20273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20274 
20275     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20276     Result getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20277 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20278     template<typename Allocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20279     typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20280     template<typename Allocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20281     typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const;
20282 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20283 
20284     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20285     Result getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20286 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20287     template<typename Allocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20288     typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20289     template<typename Allocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20290     typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const;
20291 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20292 
20293     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20294     Result getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20295 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20296     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20297     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR>::type getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20298 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20299 
20300     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20301     Result getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20302 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20303     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20304     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR>::type getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20306 
20307     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20308     Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20309 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20310     template<typename Allocator = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20311     typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20312     template<typename Allocator = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20313     typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const;
20314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20315 
20316     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20317     Result getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20318 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20319     template<typename Allocator = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20320     typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20321     template<typename Allocator = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20322     typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const;
20323 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20324 
20325     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20326     Result getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20327 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20328     template<typename Allocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20329     typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20330     template<typename Allocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20331     typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
20332 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20333 
20334     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20335     Result getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20336 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20337     template<typename Allocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20338     typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20339     template<typename Allocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20340     typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
20341 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20342 
20343     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20344     Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20345 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20346     template<typename Allocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20347     typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20348     template<typename Allocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20349     typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
20350 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20351 
20352     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20353     Result getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20354 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20355     template<typename Allocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20356     typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20357     template<typename Allocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20358     typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
20359 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20360 
20361     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20362     Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20363 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20364     template<typename Allocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20365     typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20366     template<typename Allocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20367     typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
20368 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20369 
20370     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20371     void getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20372 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20373     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20374     VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20375 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20376 
20377     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20378     void getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20379 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20380     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20381     VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20383 
20384     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20385     void getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20386 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20387     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20388     VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20389 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20390 
20391     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20392     void getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20393 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20394     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20395     VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20396 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20397 
20398     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20399     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 ) const VULKAN_HPP_NOEXCEPT;
20400 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20401     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20402     typename ResultValueType<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV>::type getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20404 
20405     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20406     void getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20407 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20408     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20409     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20410 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20411 
20412     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20413     void getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20414 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20415     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20416     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20418 
20419     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20420     void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20421 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20422     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20423     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20424 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20425 
20426     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20427     void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20428 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20429     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20430     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20431     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20432     StructureChain<X, Y, Z...> getFeatures2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20434 
20435     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20436     void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20437 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20438     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20439     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20440     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20441     StructureChain<X, Y, Z...> getFeatures2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20443 
20444     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20445     void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20446 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20447     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20448     VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20449 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20450 
20451     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20452     void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20453 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20454     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20455     VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20456     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20457     StructureChain<X, Y, Z...> getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20458 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20459 
20460     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20461     void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20462 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20463     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20464     VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20465     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20466     StructureChain<X, Y, Z...> getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20467 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20468 
20469     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20470     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 ) const VULKAN_HPP_NOEXCEPT;
20471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20472     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20473     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties>::type getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20475 
20476     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20477     Result getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20478 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20479     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20480     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20481     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20482     typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20484 
20485     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20486     Result getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20487 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20488     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20489     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20490     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20491     typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20492 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20493 
20494     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20495     void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20496 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20497     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20498     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20499 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20500 
20501     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20502     void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20504     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20505     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20506     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20507     StructureChain<X, Y, Z...> getMemoryProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20508 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20509 
20510     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20511     void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20512 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20513     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20514     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20515     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20516     StructureChain<X, Y, Z...> getMemoryProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20518 
20519     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20520     void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20522     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20523     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20525 
20526     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20527     Result getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20528 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20529     template<typename Allocator = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20530     typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20531     template<typename Allocator = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20532     typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
20533 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20534 
20535     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20536     void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20537 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20538     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20539     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20540 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20541 
20542     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20543     void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20544 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20545     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20546     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20547     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20548     StructureChain<X, Y, Z...> getProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20550 
20551     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20552     void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20553 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20554     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20555     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20556     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20557     StructureChain<X, Y, Z...> getProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20558 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20559 
20560     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20561     void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20562 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20563     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20564     uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20566 
20567     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20568     void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20569 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20570     template<typename Allocator = std::allocator<QueueFamilyProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20571     std::vector<QueueFamilyProperties,Allocator> getQueueFamilyProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20572     template<typename Allocator = std::allocator<QueueFamilyProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20573     std::vector<QueueFamilyProperties,Allocator> getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const;
20574 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20575 
20576     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20577     void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20578 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20579     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20580     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20581     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20582     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const;
20583     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20584     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20585     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20586     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const;
20587 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20588 
20589     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20590     void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20592     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20593     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20594     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20595     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
20596     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20597     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20598     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20599     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
20600 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20601 
20602     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20603     void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20604 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20605     template<typename Allocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20606     std::vector<SparseImageFormatProperties,Allocator> 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 ) const;
20607     template<typename Allocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20608     std::vector<SparseImageFormatProperties,Allocator> 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, Allocator const& vectorAllocator, Dispatch const &d ) const;
20609 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20610 
20611     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20612     void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20613 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20614     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20615     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20616     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20617     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
20618 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20619 
20620     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20621     void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20622 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20623     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20624     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20625     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20626     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
20627 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20628 
20629     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20630     Result getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20631 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20632     template<typename Allocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20633     typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20634     template<typename Allocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20635     typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
20636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20637 
20638     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20639     Result getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20640 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20641     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20642     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>::type getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20643 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20644 
20645     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20646     Result getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20648     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20649     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20650     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20651     typename ResultValueType<StructureChain<X, Y, Z...>>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20652 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20653 
20654     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20655     Result getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20656 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20657     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20658     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>::type getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20659 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20660 
20661     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20662     Result getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20664     template<typename Allocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20665     typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20666     template<typename Allocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20667     typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
20668 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20669 
20670     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20671     Result getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20672 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20673     template<typename Allocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20674     typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20675     template<typename Allocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20676     typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
20677 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20678 
20679 #ifdef VK_USE_PLATFORM_WIN32_KHR
20680     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20681     Result getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20682 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20683     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20684     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20685     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20686     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
20687 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20688 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
20689 
20690     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20691     Result getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20692 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20693     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20694     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20695     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20696     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
20697 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20698 
20699     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20700     Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20702     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20703     typename ResultValueType<VULKAN_HPP_NAMESPACE::Bool32>::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20704 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20705 
20706     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20707     Result getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20708 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20709     template<typename Allocator = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20710     typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type getToolPropertiesEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20711     template<typename Allocator = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20712     typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d ) const;
20713 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20714 
20715 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
20716     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20717     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20719     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20720     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20722 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
20723 
20724 #ifdef VK_USE_PLATFORM_WIN32_KHR
20725     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20726     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20727 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
20728 
20729 #ifdef VK_USE_PLATFORM_XCB_KHR
20730     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20731     Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20732 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20733     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20734     Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20735 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20736 #endif /*VK_USE_PLATFORM_XCB_KHR*/
20737 
20738 #ifdef VK_USE_PLATFORM_XLIB_KHR
20739     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20740     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20741 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20742     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20743     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20744 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20745 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
20746 
20747 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
20748     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20749     Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20750 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20751     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20752     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20753 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20754 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
20755 
20756 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
20757     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20758     Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
20759 #else
20760     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20761     typename ResultValueType<void>::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20762 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20763 
operator VkPhysicalDevice() const20764     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT
20765     {
20766       return m_physicalDevice;
20767     }
20768 
operator bool() const20769     explicit operator bool() const VULKAN_HPP_NOEXCEPT
20770     {
20771       return m_physicalDevice != VK_NULL_HANDLE;
20772     }
20773 
operator !() const20774     bool operator!() const VULKAN_HPP_NOEXCEPT
20775     {
20776       return m_physicalDevice == VK_NULL_HANDLE;
20777     }
20778 
20779   private:
20780     VkPhysicalDevice m_physicalDevice;
20781   };
20782   static_assert( sizeof( PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
20783 
20784   template <>
20785   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePhysicalDevice>
20786   {
20787     using type = PhysicalDevice;
20788   };
20789 
20790   template <>
20791   struct CppType<ObjectType, ObjectType::ePhysicalDevice>
20792   {
20793     using Type = PhysicalDevice;
20794   };
20795 
20796 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20797   class Instance;
20798   template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
20799   using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
20800   template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
20801   using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
20802   template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
20803   using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
20804 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20805 
20806   class Instance
20807   {
20808   public:
20809     using CType = VkInstance;
20810 
20811     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eInstance;
20812 
20813   public:
Instance()20814     VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT
20815       : m_instance(VK_NULL_HANDLE)
20816     {}
20817 
Instance(std::nullptr_t)20818     VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20819       : m_instance(VK_NULL_HANDLE)
20820     {}
20821 
Instance(VkInstance instance)20822     VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT
20823       : m_instance( instance )
20824     {}
20825 
20826 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkInstance instance)20827     Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT
20828     {
20829       m_instance = instance;
20830       return *this;
20831     }
20832 #endif
20833 
operator =(std::nullptr_t)20834     Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20835     {
20836       m_instance = VK_NULL_HANDLE;
20837       return *this;
20838     }
20839 
20840 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20841     auto operator<=>( Instance const& ) const = default;
20842 #else
operator ==(Instance const & rhs) const20843     bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
20844     {
20845       return m_instance == rhs.m_instance;
20846     }
20847 
operator !=(Instance const & rhs) const20848     bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
20849     {
20850       return m_instance != rhs.m_instance;
20851     }
20852 
operator <(Instance const & rhs) const20853     bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
20854     {
20855       return m_instance < rhs.m_instance;
20856     }
20857 #endif
20858 
20859 #ifdef VK_USE_PLATFORM_ANDROID_KHR
20860     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20861     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 ) const VULKAN_HPP_NOEXCEPT;
20862 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20863     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20864     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20865 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20866     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20867     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20868 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20869 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20870 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
20871 
20872     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20873     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 ) const VULKAN_HPP_NOEXCEPT;
20874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20875     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20876     typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20877 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20878     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20879     typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20880 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20881 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20882 
20883     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20884     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 ) const VULKAN_HPP_NOEXCEPT;
20885 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20886     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20887     typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20888 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20889     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20890     typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20891 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20892 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20893 
20894     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20895     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 ) const VULKAN_HPP_NOEXCEPT;
20896 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20897     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20898     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20899 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20900     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20901     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20902 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20903 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20904 
20905     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20906     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 ) const VULKAN_HPP_NOEXCEPT;
20907 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20908     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20909     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20910 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20911     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20912     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20913 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20915 
20916 #ifdef VK_USE_PLATFORM_IOS_MVK
20917     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20918     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 ) const VULKAN_HPP_NOEXCEPT;
20919 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20920     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20921     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20922 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20923     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20924     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20925 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20927 #endif /*VK_USE_PLATFORM_IOS_MVK*/
20928 
20929 #ifdef VK_USE_PLATFORM_FUCHSIA
20930     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20931     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 ) const VULKAN_HPP_NOEXCEPT;
20932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20933     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20934     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20935 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20936     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20937     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20938 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20940 #endif /*VK_USE_PLATFORM_FUCHSIA*/
20941 
20942 #ifdef VK_USE_PLATFORM_MACOS_MVK
20943     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20944     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 ) const VULKAN_HPP_NOEXCEPT;
20945 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20946     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20947     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20948 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20949     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20950     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20951 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20952 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20953 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
20954 
20955 #ifdef VK_USE_PLATFORM_METAL_EXT
20956     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20957     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 ) const VULKAN_HPP_NOEXCEPT;
20958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20959     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20960     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20961 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20962     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20963     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20964 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20965 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20966 #endif /*VK_USE_PLATFORM_METAL_EXT*/
20967 
20968 #ifdef VK_USE_PLATFORM_GGP
20969     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20970     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 ) const VULKAN_HPP_NOEXCEPT;
20971 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20972     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20973     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20974 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20975     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20976     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20977 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20978 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20979 #endif /*VK_USE_PLATFORM_GGP*/
20980 
20981 #ifdef VK_USE_PLATFORM_VI_NN
20982     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20983     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 ) const VULKAN_HPP_NOEXCEPT;
20984 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20985     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20986     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20987 #ifndef VULKAN_HPP_NO_SMART_HANDLE
20988     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20989     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
20990 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
20991 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20992 #endif /*VK_USE_PLATFORM_VI_NN*/
20993 
20994 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
20995     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20996     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 ) const VULKAN_HPP_NOEXCEPT;
20997 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20998     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
20999     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21000 #ifndef VULKAN_HPP_NO_SMART_HANDLE
21001     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21002     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21003 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
21004 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21005 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
21006 
21007 #ifdef VK_USE_PLATFORM_WIN32_KHR
21008     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21009     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 ) const VULKAN_HPP_NOEXCEPT;
21010 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21011     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21012     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21013 #ifndef VULKAN_HPP_NO_SMART_HANDLE
21014     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21015     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21016 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
21017 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21018 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
21019 
21020 #ifdef VK_USE_PLATFORM_XCB_KHR
21021     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21022     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 ) const VULKAN_HPP_NOEXCEPT;
21023 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21024     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21025     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21026 #ifndef VULKAN_HPP_NO_SMART_HANDLE
21027     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21028     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21029 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
21030 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21031 #endif /*VK_USE_PLATFORM_XCB_KHR*/
21032 
21033 #ifdef VK_USE_PLATFORM_XLIB_KHR
21034     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21035     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 ) const VULKAN_HPP_NOEXCEPT;
21036 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21037     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21038     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21039 #ifndef VULKAN_HPP_NO_SMART_HANDLE
21040     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21041     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21042 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
21043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21044 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
21045 
21046     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21047     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 ) const VULKAN_HPP_NOEXCEPT;
21048 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21049     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21050     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 ) const;
21051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21052 
21053     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21054     void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21055 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21056     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21057     void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21058 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21059 
21060     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21061     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21062 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21063     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21064     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21065 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21066 
21067     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21068     void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21069 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21070     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21071     void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21073 
21074     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21075     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21076 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21077     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21078     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21079 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21080 
21081     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21082     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21083 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21084     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21085     void destroy( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21087 
21088     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21089     void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21090 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21091     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21092     void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21093 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21094 
21095     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21096     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21097 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21098     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21099     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21100 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21101 
21102     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21103     Result enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21104 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21105     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21106     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21107     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21108     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const;
21109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21110 
21111     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21112     Result enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21113 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21114     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21115     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21116     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21117     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
21118 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21119 
21120     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21121     Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21122 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21123     template<typename Allocator = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21124     typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const;
21125     template<typename Allocator = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21126     typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const;
21127 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21128 
21129     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21130     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21131 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21132     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21133     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21134 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21135 
21136     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21137     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 ) const VULKAN_HPP_NOEXCEPT;
21138 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21139     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21140     void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
21141 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21142 
operator VkInstance() const21143     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT
21144     {
21145       return m_instance;
21146     }
21147 
operator bool() const21148     explicit operator bool() const VULKAN_HPP_NOEXCEPT
21149     {
21150       return m_instance != VK_NULL_HANDLE;
21151     }
21152 
operator !() const21153     bool operator!() const VULKAN_HPP_NOEXCEPT
21154     {
21155       return m_instance == VK_NULL_HANDLE;
21156     }
21157 
21158   private:
21159     VkInstance m_instance;
21160   };
21161   static_assert( sizeof( Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
21162 
21163   template <>
21164   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eInstance>
21165   {
21166     using type = Instance;
21167   };
21168 
21169   template <>
21170   struct CppType<ObjectType, ObjectType::eInstance>
21171   {
21172     using Type = Instance;
21173   };
21174 
21175 #ifndef VULKAN_HPP_NO_SMART_HANDLE
21176   template <typename Dispatch> class UniqueHandleTraits<Instance, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
21177   using UniqueInstance = UniqueHandle<Instance, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
21178 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
21179 
21180   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21181   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 ) VULKAN_HPP_NOEXCEPT;
21182 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21183   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21184   typename ResultValueType<VULKAN_HPP_NAMESPACE::Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER );
21185 #ifndef VULKAN_HPP_NO_SMART_HANDLE
21186   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21187   typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER );
21188 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
21189 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21190 
21191   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21192   Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT;
21193 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21194   template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21195   typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER );
21196   template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21197   typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d );
21198 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21199 
21200   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21201   Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT;
21202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21203   template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21204   typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER );
21205   template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21206   typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d );
21207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21208 
21209   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21210   Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT;
21211 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21212   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
21213   typename ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER );
21214 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21215 
21216   struct AabbPositionsKHR
21217   {
21218 
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR21219     VULKAN_HPP_CONSTEXPR AabbPositionsKHR( float minX_ = {},
21220                                            float minY_ = {},
21221                                            float minZ_ = {},
21222                                            float maxX_ = {},
21223                                            float maxY_ = {},
21224                                            float maxZ_ = {} ) VULKAN_HPP_NOEXCEPT
21225       : minX( minX_ )
21226       , minY( minY_ )
21227       , minZ( minZ_ )
21228       , maxX( maxX_ )
21229       , maxY( maxY_ )
21230       , maxZ( maxZ_ )
21231     {}
21232 
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR21233     AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21234     {
21235       *this = rhs;
21236     }
21237 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR21238     AabbPositionsKHR& operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21239     {
21240       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AabbPositionsKHR const *>(&rhs);
21241       return *this;
21242     }
21243 
setMinXVULKAN_HPP_NAMESPACE::AabbPositionsKHR21244     AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
21245     {
21246       minX = minX_;
21247       return *this;
21248     }
21249 
setMinYVULKAN_HPP_NAMESPACE::AabbPositionsKHR21250     AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT
21251     {
21252       minY = minY_;
21253       return *this;
21254     }
21255 
setMinZVULKAN_HPP_NAMESPACE::AabbPositionsKHR21256     AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT
21257     {
21258       minZ = minZ_;
21259       return *this;
21260     }
21261 
setMaxXVULKAN_HPP_NAMESPACE::AabbPositionsKHR21262     AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT
21263     {
21264       maxX = maxX_;
21265       return *this;
21266     }
21267 
setMaxYVULKAN_HPP_NAMESPACE::AabbPositionsKHR21268     AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT
21269     {
21270       maxY = maxY_;
21271       return *this;
21272     }
21273 
setMaxZVULKAN_HPP_NAMESPACE::AabbPositionsKHR21274     AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT
21275     {
21276       maxZ = maxZ_;
21277       return *this;
21278     }
21279 
21280 
operator VkAabbPositionsKHR const&VULKAN_HPP_NAMESPACE::AabbPositionsKHR21281     operator VkAabbPositionsKHR const&() const VULKAN_HPP_NOEXCEPT
21282     {
21283       return *reinterpret_cast<const VkAabbPositionsKHR*>( this );
21284     }
21285 
operator VkAabbPositionsKHR&VULKAN_HPP_NAMESPACE::AabbPositionsKHR21286     operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
21287     {
21288       return *reinterpret_cast<VkAabbPositionsKHR*>( this );
21289     }
21290 
21291 
21292 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21293     auto operator<=>( AabbPositionsKHR const& ) const = default;
21294 #else
operator ==VULKAN_HPP_NAMESPACE::AabbPositionsKHR21295     bool operator==( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21296     {
21297       return ( minX == rhs.minX )
21298           && ( minY == rhs.minY )
21299           && ( minZ == rhs.minZ )
21300           && ( maxX == rhs.maxX )
21301           && ( maxY == rhs.maxY )
21302           && ( maxZ == rhs.maxZ );
21303     }
21304 
operator !=VULKAN_HPP_NAMESPACE::AabbPositionsKHR21305     bool operator!=( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21306     {
21307       return !operator==( rhs );
21308     }
21309 #endif
21310 
21311 
21312 
21313   public:
21314     float minX = {};
21315     float minY = {};
21316     float minZ = {};
21317     float maxX = {};
21318     float maxY = {};
21319     float maxZ = {};
21320 
21321   };
21322   static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), "struct and wrapper have different size!" );
21323   static_assert( std::is_standard_layout<AabbPositionsKHR>::value, "struct wrapper is not a standard layout!" );
21324 
21325 #ifdef VK_ENABLE_BETA_EXTENSIONS
21326   union DeviceOrHostAddressConstKHR
21327   {
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)21328     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const& rhs ) VULKAN_HPP_NOEXCEPT
21329     {
21330       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
21331     }
21332 
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )21333     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
21334       : deviceAddress( deviceAddress_ )
21335     {}
21336 
DeviceOrHostAddressConstKHR(const void * hostAddress_)21337     DeviceOrHostAddressConstKHR( const void* hostAddress_ )
21338       : hostAddress( hostAddress_ )
21339     {}
21340 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)21341     DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
21342     {
21343       deviceAddress = deviceAddress_;
21344       return *this;
21345     }
21346 
setHostAddress(const void * hostAddress_)21347     DeviceOrHostAddressConstKHR & setHostAddress( const void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
21348     {
21349       hostAddress = hostAddress_;
21350       return *this;
21351     }
21352 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)21353     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21354     {
21355       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
21356       return *this;
21357     }
21358 
operator VkDeviceOrHostAddressConstKHR const&() const21359     operator VkDeviceOrHostAddressConstKHR const&() const
21360     {
21361       return *reinterpret_cast<const VkDeviceOrHostAddressConstKHR*>(this);
21362     }
21363 
operator VkDeviceOrHostAddressConstKHR&()21364     operator VkDeviceOrHostAddressConstKHR &()
21365     {
21366       return *reinterpret_cast<VkDeviceOrHostAddressConstKHR*>(this);
21367     }
21368 
21369 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
21370     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
21371     const void* hostAddress;
21372 #else
21373     VkDeviceAddress deviceAddress;
21374     const void* hostAddress;
21375 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
21376   };
21377 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21378 
21379 #ifdef VK_ENABLE_BETA_EXTENSIONS
21380   struct AccelerationStructureGeometryTrianglesDataKHR
21381   {
21382     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
21383 
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21384     AccelerationStructureGeometryTrianglesDataKHR( VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
21385                                                    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {},
21386                                                    VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {},
21387                                                    VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
21388                                                    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {},
21389                                                    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {} ) VULKAN_HPP_NOEXCEPT
21390       : vertexFormat( vertexFormat_ )
21391       , vertexData( vertexData_ )
21392       , vertexStride( vertexStride_ )
21393       , indexType( indexType_ )
21394       , indexData( indexData_ )
21395       , transformData( transformData_ )
21396     {}
21397 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21398     AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21399     {
21400       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureGeometryTrianglesDataKHR ) - offsetof( AccelerationStructureGeometryTrianglesDataKHR, pNext ) );
21401       return *this;
21402     }
21403 
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21404     AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21405     {
21406       *this = rhs;
21407     }
21408 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21409     AccelerationStructureGeometryTrianglesDataKHR& operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21410     {
21411       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const *>(&rhs);
21412       return *this;
21413     }
21414 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21415     AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21416     {
21417       pNext = pNext_;
21418       return *this;
21419     }
21420 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21421     AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
21422     {
21423       vertexFormat = vertexFormat_;
21424       return *this;
21425     }
21426 
setVertexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21427     AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
21428     {
21429       vertexData = vertexData_;
21430       return *this;
21431     }
21432 
setVertexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21433     AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
21434     {
21435       vertexStride = vertexStride_;
21436       return *this;
21437     }
21438 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21439     AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
21440     {
21441       indexType = indexType_;
21442       return *this;
21443     }
21444 
setIndexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21445     AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
21446     {
21447       indexData = indexData_;
21448       return *this;
21449     }
21450 
setTransformDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21451     AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
21452     {
21453       transformData = transformData_;
21454       return *this;
21455     }
21456 
21457 
operator VkAccelerationStructureGeometryTrianglesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21458     operator VkAccelerationStructureGeometryTrianglesDataKHR const&() const VULKAN_HPP_NOEXCEPT
21459     {
21460       return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
21461     }
21462 
operator VkAccelerationStructureGeometryTrianglesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR21463     operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
21464     {
21465       return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
21466     }
21467 
21468 
21469 
21470 
21471   public:
21472     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
21473     const void* pNext = {};
21474     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
21475     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
21476     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
21477     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
21478     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {};
21479     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {};
21480 
21481   };
21482   static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), "struct and wrapper have different size!" );
21483   static_assert( std::is_standard_layout<AccelerationStructureGeometryTrianglesDataKHR>::value, "struct wrapper is not a standard layout!" );
21484 
21485   template <>
21486   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryTrianglesDataKHR>
21487   {
21488     using Type = AccelerationStructureGeometryTrianglesDataKHR;
21489   };
21490 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21491 
21492 #ifdef VK_ENABLE_BETA_EXTENSIONS
21493   struct AccelerationStructureGeometryAabbsDataKHR
21494   {
21495     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
21496 
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21497     AccelerationStructureGeometryAabbsDataKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {},
21498                                                VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {} ) VULKAN_HPP_NOEXCEPT
21499       : data( data_ )
21500       , stride( stride_ )
21501     {}
21502 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21503     AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21504     {
21505       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureGeometryAabbsDataKHR ) - offsetof( AccelerationStructureGeometryAabbsDataKHR, pNext ) );
21506       return *this;
21507     }
21508 
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21509     AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21510     {
21511       *this = rhs;
21512     }
21513 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21514     AccelerationStructureGeometryAabbsDataKHR& operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21515     {
21516       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const *>(&rhs);
21517       return *this;
21518     }
21519 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21520     AccelerationStructureGeometryAabbsDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21521     {
21522       pNext = pNext_;
21523       return *this;
21524     }
21525 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21526     AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
21527     {
21528       data = data_;
21529       return *this;
21530     }
21531 
setStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21532     AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
21533     {
21534       stride = stride_;
21535       return *this;
21536     }
21537 
21538 
operator VkAccelerationStructureGeometryAabbsDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21539     operator VkAccelerationStructureGeometryAabbsDataKHR const&() const VULKAN_HPP_NOEXCEPT
21540     {
21541       return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR*>( this );
21542     }
21543 
operator VkAccelerationStructureGeometryAabbsDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR21544     operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
21545     {
21546       return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR*>( this );
21547     }
21548 
21549 
21550 
21551 
21552   public:
21553     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
21554     const void* pNext = {};
21555     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
21556     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
21557 
21558   };
21559   static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), "struct and wrapper have different size!" );
21560   static_assert( std::is_standard_layout<AccelerationStructureGeometryAabbsDataKHR>::value, "struct wrapper is not a standard layout!" );
21561 
21562   template <>
21563   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryAabbsDataKHR>
21564   {
21565     using Type = AccelerationStructureGeometryAabbsDataKHR;
21566   };
21567 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21568 
21569 #ifdef VK_ENABLE_BETA_EXTENSIONS
21570   struct AccelerationStructureGeometryInstancesDataKHR
21571   {
21572     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
21573 
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21574     AccelerationStructureGeometryInstancesDataKHR( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {},
21575                                                    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {} ) VULKAN_HPP_NOEXCEPT
21576       : arrayOfPointers( arrayOfPointers_ )
21577       , data( data_ )
21578     {}
21579 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21580     AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21581     {
21582       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureGeometryInstancesDataKHR ) - offsetof( AccelerationStructureGeometryInstancesDataKHR, pNext ) );
21583       return *this;
21584     }
21585 
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21586     AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21587     {
21588       *this = rhs;
21589     }
21590 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21591     AccelerationStructureGeometryInstancesDataKHR& operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21592     {
21593       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const *>(&rhs);
21594       return *this;
21595     }
21596 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21597     AccelerationStructureGeometryInstancesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21598     {
21599       pNext = pNext_;
21600       return *this;
21601     }
21602 
setArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21603     AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
21604     {
21605       arrayOfPointers = arrayOfPointers_;
21606       return *this;
21607     }
21608 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21609     AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
21610     {
21611       data = data_;
21612       return *this;
21613     }
21614 
21615 
operator VkAccelerationStructureGeometryInstancesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21616     operator VkAccelerationStructureGeometryInstancesDataKHR const&() const VULKAN_HPP_NOEXCEPT
21617     {
21618       return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR*>( this );
21619     }
21620 
operator VkAccelerationStructureGeometryInstancesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR21621     operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
21622     {
21623       return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR*>( this );
21624     }
21625 
21626 
21627 
21628 
21629   public:
21630     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
21631     const void* pNext = {};
21632     VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {};
21633     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
21634 
21635   };
21636   static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), "struct and wrapper have different size!" );
21637   static_assert( std::is_standard_layout<AccelerationStructureGeometryInstancesDataKHR>::value, "struct wrapper is not a standard layout!" );
21638 
21639   template <>
21640   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryInstancesDataKHR>
21641   {
21642     using Type = AccelerationStructureGeometryInstancesDataKHR;
21643   };
21644 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21645 
21646 #ifdef VK_ENABLE_BETA_EXTENSIONS
21647   union AccelerationStructureGeometryDataKHR
21648   {
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)21649     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const& rhs ) VULKAN_HPP_NOEXCEPT
21650     {
21651       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
21652     }
21653 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_={} )21654     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} )
21655       : triangles( triangles_ )
21656     {}
21657 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_)21658     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ )
21659       : aabbs( aabbs_ )
21660     {}
21661 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_)21662     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
21663       : instances( instances_ )
21664     {}
21665 
setTriangles(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_)21666     AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
21667     {
21668       memcpy( &triangles, &triangles_, sizeof(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR));
21669       return *this;
21670     }
21671 
setAabbs(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_)21672     AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
21673     {
21674       memcpy( &aabbs, &aabbs_, sizeof(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR));
21675       return *this;
21676     }
21677 
setInstances(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_)21678     AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
21679     {
21680       memcpy( &instances, &instances_, sizeof(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR));
21681       return *this;
21682     }
21683 
operator =(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)21684     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21685     {
21686       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
21687       return *this;
21688     }
21689 
operator VkAccelerationStructureGeometryDataKHR const&() const21690     operator VkAccelerationStructureGeometryDataKHR const&() const
21691     {
21692       return *reinterpret_cast<const VkAccelerationStructureGeometryDataKHR*>(this);
21693     }
21694 
operator VkAccelerationStructureGeometryDataKHR&()21695     operator VkAccelerationStructureGeometryDataKHR &()
21696     {
21697       return *reinterpret_cast<VkAccelerationStructureGeometryDataKHR*>(this);
21698     }
21699 
21700 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
21701     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles;
21702     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs;
21703     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances;
21704 #else
21705     VkAccelerationStructureGeometryTrianglesDataKHR triangles;
21706     VkAccelerationStructureGeometryAabbsDataKHR aabbs;
21707     VkAccelerationStructureGeometryInstancesDataKHR instances;
21708 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
21709   };
21710 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21711 
21712 #ifdef VK_ENABLE_BETA_EXTENSIONS
21713   struct AccelerationStructureGeometryKHR
21714   {
21715     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR;
21716 
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21717     AccelerationStructureGeometryKHR( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles,
21718                                       VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {},
21719                                       VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {} ) VULKAN_HPP_NOEXCEPT
21720       : geometryType( geometryType_ )
21721       , geometry( geometry_ )
21722       , flags( flags_ )
21723     {}
21724 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21725     AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21726     {
21727       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureGeometryKHR ) - offsetof( AccelerationStructureGeometryKHR, pNext ) );
21728       return *this;
21729     }
21730 
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21731     AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21732     {
21733       *this = rhs;
21734     }
21735 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21736     AccelerationStructureGeometryKHR& operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21737     {
21738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR const *>(&rhs);
21739       return *this;
21740     }
21741 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21742     AccelerationStructureGeometryKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21743     {
21744       pNext = pNext_;
21745       return *this;
21746     }
21747 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21748     AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
21749     {
21750       geometryType = geometryType_;
21751       return *this;
21752     }
21753 
setGeometryVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21754     AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
21755     {
21756       geometry = geometry_;
21757       return *this;
21758     }
21759 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21760     AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
21761     {
21762       flags = flags_;
21763       return *this;
21764     }
21765 
21766 
operator VkAccelerationStructureGeometryKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21767     operator VkAccelerationStructureGeometryKHR const&() const VULKAN_HPP_NOEXCEPT
21768     {
21769       return *reinterpret_cast<const VkAccelerationStructureGeometryKHR*>( this );
21770     }
21771 
operator VkAccelerationStructureGeometryKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR21772     operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
21773     {
21774       return *reinterpret_cast<VkAccelerationStructureGeometryKHR*>( this );
21775     }
21776 
21777 
21778 
21779 
21780   public:
21781     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR;
21782     const void* pNext = {};
21783     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
21784     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {};
21785     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
21786 
21787   };
21788   static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), "struct and wrapper have different size!" );
21789   static_assert( std::is_standard_layout<AccelerationStructureGeometryKHR>::value, "struct wrapper is not a standard layout!" );
21790 
21791   template <>
21792   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryKHR>
21793   {
21794     using Type = AccelerationStructureGeometryKHR;
21795   };
21796 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21797 
21798 #ifdef VK_ENABLE_BETA_EXTENSIONS
21799   union DeviceOrHostAddressKHR
21800   {
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)21801     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const& rhs ) VULKAN_HPP_NOEXCEPT
21802     {
21803       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
21804     }
21805 
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )21806     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
21807       : deviceAddress( deviceAddress_ )
21808     {}
21809 
DeviceOrHostAddressKHR(void * hostAddress_)21810     DeviceOrHostAddressKHR( void* hostAddress_ )
21811       : hostAddress( hostAddress_ )
21812     {}
21813 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)21814     DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
21815     {
21816       deviceAddress = deviceAddress_;
21817       return *this;
21818     }
21819 
setHostAddress(void * hostAddress_)21820     DeviceOrHostAddressKHR & setHostAddress( void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
21821     {
21822       hostAddress = hostAddress_;
21823       return *this;
21824     }
21825 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)21826     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21827     {
21828       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
21829       return *this;
21830     }
21831 
operator VkDeviceOrHostAddressKHR const&() const21832     operator VkDeviceOrHostAddressKHR const&() const
21833     {
21834       return *reinterpret_cast<const VkDeviceOrHostAddressKHR*>(this);
21835     }
21836 
operator VkDeviceOrHostAddressKHR&()21837     operator VkDeviceOrHostAddressKHR &()
21838     {
21839       return *reinterpret_cast<VkDeviceOrHostAddressKHR*>(this);
21840     }
21841 
21842 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
21843     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
21844     void* hostAddress;
21845 #else
21846     VkDeviceAddress deviceAddress;
21847     void* hostAddress;
21848 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
21849   };
21850 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21851 
21852 #ifdef VK_ENABLE_BETA_EXTENSIONS
21853   struct AccelerationStructureBuildGeometryInfoKHR
21854   {
21855     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
21856 
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21857     AccelerationStructureBuildGeometryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel,
21858                                                VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {},
21859                                                VULKAN_HPP_NAMESPACE::Bool32 update_ = {},
21860                                                VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {},
21861                                                VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {},
21862                                                VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers_ = {},
21863                                                uint32_t geometryCount_ = {},
21864                                                const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const* ppGeometries_ = {},
21865                                                VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {} ) VULKAN_HPP_NOEXCEPT
21866       : type( type_ )
21867       , flags( flags_ )
21868       , update( update_ )
21869       , srcAccelerationStructure( srcAccelerationStructure_ )
21870       , dstAccelerationStructure( dstAccelerationStructure_ )
21871       , geometryArrayOfPointers( geometryArrayOfPointers_ )
21872       , geometryCount( geometryCount_ )
21873       , ppGeometries( ppGeometries_ )
21874       , scratchData( scratchData_ )
21875     {}
21876 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21877     AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21878     {
21879       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureBuildGeometryInfoKHR ) - offsetof( AccelerationStructureBuildGeometryInfoKHR, pNext ) );
21880       return *this;
21881     }
21882 
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21883     AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21884     {
21885       *this = rhs;
21886     }
21887 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21888     AccelerationStructureBuildGeometryInfoKHR& operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21889     {
21890       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR const *>(&rhs);
21891       return *this;
21892     }
21893 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21894     AccelerationStructureBuildGeometryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21895     {
21896       pNext = pNext_;
21897       return *this;
21898     }
21899 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21900     AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
21901     {
21902       type = type_;
21903       return *this;
21904     }
21905 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21906     AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
21907     {
21908       flags = flags_;
21909       return *this;
21910     }
21911 
setUpdateVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21912     AccelerationStructureBuildGeometryInfoKHR & setUpdate( VULKAN_HPP_NAMESPACE::Bool32 update_ ) VULKAN_HPP_NOEXCEPT
21913     {
21914       update = update_;
21915       return *this;
21916     }
21917 
setSrcAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21918     AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
21919     {
21920       srcAccelerationStructure = srcAccelerationStructure_;
21921       return *this;
21922     }
21923 
setDstAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21924     AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
21925     {
21926       dstAccelerationStructure = dstAccelerationStructure_;
21927       return *this;
21928     }
21929 
setGeometryArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21930     AccelerationStructureBuildGeometryInfoKHR & setGeometryArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
21931     {
21932       geometryArrayOfPointers = geometryArrayOfPointers_;
21933       return *this;
21934     }
21935 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21936     AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
21937     {
21938       geometryCount = geometryCount_;
21939       return *this;
21940     }
21941 
setPpGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21942     AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const* ppGeometries_ ) VULKAN_HPP_NOEXCEPT
21943     {
21944       ppGeometries = ppGeometries_;
21945       return *this;
21946     }
21947 
setScratchDataVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21948     AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
21949     {
21950       scratchData = scratchData_;
21951       return *this;
21952     }
21953 
21954 
operator VkAccelerationStructureBuildGeometryInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21955     operator VkAccelerationStructureBuildGeometryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
21956     {
21957       return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( this );
21958     }
21959 
operator VkAccelerationStructureBuildGeometryInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR21960     operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
21961     {
21962       return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR*>( this );
21963     }
21964 
21965 
21966 
21967 
21968   public:
21969     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
21970     const void* pNext = {};
21971     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
21972     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
21973     VULKAN_HPP_NAMESPACE::Bool32 update = {};
21974     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {};
21975     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {};
21976     VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers = {};
21977     uint32_t geometryCount = {};
21978     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const* ppGeometries = {};
21979     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
21980 
21981   };
21982   static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), "struct and wrapper have different size!" );
21983   static_assert( std::is_standard_layout<AccelerationStructureBuildGeometryInfoKHR>::value, "struct wrapper is not a standard layout!" );
21984 
21985   template <>
21986   struct CppType<StructureType, StructureType::eAccelerationStructureBuildGeometryInfoKHR>
21987   {
21988     using Type = AccelerationStructureBuildGeometryInfoKHR;
21989   };
21990 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
21991 
21992 #ifdef VK_ENABLE_BETA_EXTENSIONS
21993   struct AccelerationStructureBuildOffsetInfoKHR
21994   {
21995 
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR21996     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildOffsetInfoKHR( uint32_t primitiveCount_ = {},
21997                                                                   uint32_t primitiveOffset_ = {},
21998                                                                   uint32_t firstVertex_ = {},
21999                                                                   uint32_t transformOffset_ = {} ) VULKAN_HPP_NOEXCEPT
22000       : primitiveCount( primitiveCount_ )
22001       , primitiveOffset( primitiveOffset_ )
22002       , firstVertex( firstVertex_ )
22003       , transformOffset( transformOffset_ )
22004     {}
22005 
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22006     AccelerationStructureBuildOffsetInfoKHR( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22007     {
22008       *this = rhs;
22009     }
22010 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22011     AccelerationStructureBuildOffsetInfoKHR& operator=( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22012     {
22013       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR const *>(&rhs);
22014       return *this;
22015     }
22016 
setPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22017     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
22018     {
22019       primitiveCount = primitiveCount_;
22020       return *this;
22021     }
22022 
setPrimitiveOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22023     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT
22024     {
22025       primitiveOffset = primitiveOffset_;
22026       return *this;
22027     }
22028 
setFirstVertexVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22029     AccelerationStructureBuildOffsetInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
22030     {
22031       firstVertex = firstVertex_;
22032       return *this;
22033     }
22034 
setTransformOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22035     AccelerationStructureBuildOffsetInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT
22036     {
22037       transformOffset = transformOffset_;
22038       return *this;
22039     }
22040 
22041 
operator VkAccelerationStructureBuildOffsetInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22042     operator VkAccelerationStructureBuildOffsetInfoKHR const&() const VULKAN_HPP_NOEXCEPT
22043     {
22044       return *reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR*>( this );
22045     }
22046 
operator VkAccelerationStructureBuildOffsetInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22047     operator VkAccelerationStructureBuildOffsetInfoKHR &() VULKAN_HPP_NOEXCEPT
22048     {
22049       return *reinterpret_cast<VkAccelerationStructureBuildOffsetInfoKHR*>( this );
22050     }
22051 
22052 
22053 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22054     auto operator<=>( AccelerationStructureBuildOffsetInfoKHR const& ) const = default;
22055 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22056     bool operator==( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22057     {
22058       return ( primitiveCount == rhs.primitiveCount )
22059           && ( primitiveOffset == rhs.primitiveOffset )
22060           && ( firstVertex == rhs.firstVertex )
22061           && ( transformOffset == rhs.transformOffset );
22062     }
22063 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR22064     bool operator!=( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22065     {
22066       return !operator==( rhs );
22067     }
22068 #endif
22069 
22070 
22071 
22072   public:
22073     uint32_t primitiveCount = {};
22074     uint32_t primitiveOffset = {};
22075     uint32_t firstVertex = {};
22076     uint32_t transformOffset = {};
22077 
22078   };
22079   static_assert( sizeof( AccelerationStructureBuildOffsetInfoKHR ) == sizeof( VkAccelerationStructureBuildOffsetInfoKHR ), "struct and wrapper have different size!" );
22080   static_assert( std::is_standard_layout<AccelerationStructureBuildOffsetInfoKHR>::value, "struct wrapper is not a standard layout!" );
22081 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
22082 
22083 #ifdef VK_ENABLE_BETA_EXTENSIONS
22084   struct AccelerationStructureCreateGeometryTypeInfoKHR
22085   {
22086     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
22087 
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22088     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateGeometryTypeInfoKHR( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles,
22089                                                                          uint32_t maxPrimitiveCount_ = {},
22090                                                                          VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
22091                                                                          uint32_t maxVertexCount_ = {},
22092                                                                          VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
22093                                                                          VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms_ = {} ) VULKAN_HPP_NOEXCEPT
22094       : geometryType( geometryType_ )
22095       , maxPrimitiveCount( maxPrimitiveCount_ )
22096       , indexType( indexType_ )
22097       , maxVertexCount( maxVertexCount_ )
22098       , vertexFormat( vertexFormat_ )
22099       , allowsTransforms( allowsTransforms_ )
22100     {}
22101 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22102     AccelerationStructureCreateGeometryTypeInfoKHR & operator=( AccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22103     {
22104       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) - offsetof( AccelerationStructureCreateGeometryTypeInfoKHR, pNext ) );
22105       return *this;
22106     }
22107 
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22108     AccelerationStructureCreateGeometryTypeInfoKHR( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22109     {
22110       *this = rhs;
22111     }
22112 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22113     AccelerationStructureCreateGeometryTypeInfoKHR& operator=( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22114     {
22115       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR const *>(&rhs);
22116       return *this;
22117     }
22118 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22119     AccelerationStructureCreateGeometryTypeInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22120     {
22121       pNext = pNext_;
22122       return *this;
22123     }
22124 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22125     AccelerationStructureCreateGeometryTypeInfoKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
22126     {
22127       geometryType = geometryType_;
22128       return *this;
22129     }
22130 
setMaxPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22131     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxPrimitiveCount( uint32_t maxPrimitiveCount_ ) VULKAN_HPP_NOEXCEPT
22132     {
22133       maxPrimitiveCount = maxPrimitiveCount_;
22134       return *this;
22135     }
22136 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22137     AccelerationStructureCreateGeometryTypeInfoKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
22138     {
22139       indexType = indexType_;
22140       return *this;
22141     }
22142 
setMaxVertexCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22143     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxVertexCount( uint32_t maxVertexCount_ ) VULKAN_HPP_NOEXCEPT
22144     {
22145       maxVertexCount = maxVertexCount_;
22146       return *this;
22147     }
22148 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22149     AccelerationStructureCreateGeometryTypeInfoKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
22150     {
22151       vertexFormat = vertexFormat_;
22152       return *this;
22153     }
22154 
setAllowsTransformsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22155     AccelerationStructureCreateGeometryTypeInfoKHR & setAllowsTransforms( VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms_ ) VULKAN_HPP_NOEXCEPT
22156     {
22157       allowsTransforms = allowsTransforms_;
22158       return *this;
22159     }
22160 
22161 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22162     operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&() const VULKAN_HPP_NOEXCEPT
22163     {
22164       return *reinterpret_cast<const VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
22165     }
22166 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22167     operator VkAccelerationStructureCreateGeometryTypeInfoKHR &() VULKAN_HPP_NOEXCEPT
22168     {
22169       return *reinterpret_cast<VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
22170     }
22171 
22172 
22173 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22174     auto operator<=>( AccelerationStructureCreateGeometryTypeInfoKHR const& ) const = default;
22175 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22176     bool operator==( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22177     {
22178       return ( sType == rhs.sType )
22179           && ( pNext == rhs.pNext )
22180           && ( geometryType == rhs.geometryType )
22181           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
22182           && ( indexType == rhs.indexType )
22183           && ( maxVertexCount == rhs.maxVertexCount )
22184           && ( vertexFormat == rhs.vertexFormat )
22185           && ( allowsTransforms == rhs.allowsTransforms );
22186     }
22187 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR22188     bool operator!=( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22189     {
22190       return !operator==( rhs );
22191     }
22192 #endif
22193 
22194 
22195 
22196   public:
22197     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
22198     const void* pNext = {};
22199     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
22200     uint32_t maxPrimitiveCount = {};
22201     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
22202     uint32_t maxVertexCount = {};
22203     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
22204     VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms = {};
22205 
22206   };
22207   static_assert( sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) == sizeof( VkAccelerationStructureCreateGeometryTypeInfoKHR ), "struct and wrapper have different size!" );
22208   static_assert( std::is_standard_layout<AccelerationStructureCreateGeometryTypeInfoKHR>::value, "struct wrapper is not a standard layout!" );
22209 
22210   template <>
22211   struct CppType<StructureType, StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR>
22212   {
22213     using Type = AccelerationStructureCreateGeometryTypeInfoKHR;
22214   };
22215 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
22216 
22217 #ifdef VK_ENABLE_BETA_EXTENSIONS
22218   struct AccelerationStructureCreateInfoKHR
22219   {
22220     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
22221 
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22222     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {},
22223                                                              VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel,
22224                                                              VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {},
22225                                                              uint32_t maxGeometryCount_ = {},
22226                                                              const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos_ = {},
22227                                                              VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) VULKAN_HPP_NOEXCEPT
22228       : compactedSize( compactedSize_ )
22229       , type( type_ )
22230       , flags( flags_ )
22231       , maxGeometryCount( maxGeometryCount_ )
22232       , pGeometryInfos( pGeometryInfos_ )
22233       , deviceAddress( deviceAddress_ )
22234     {}
22235 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22236     AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22237     {
22238       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureCreateInfoKHR ) - offsetof( AccelerationStructureCreateInfoKHR, pNext ) );
22239       return *this;
22240     }
22241 
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22242     AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22243     {
22244       *this = rhs;
22245     }
22246 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22247     AccelerationStructureCreateInfoKHR& operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
22248     {
22249       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>(&rhs);
22250       return *this;
22251     }
22252 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22253     AccelerationStructureCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22254     {
22255       pNext = pNext_;
22256       return *this;
22257     }
22258 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22259     AccelerationStructureCreateInfoKHR & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
22260     {
22261       compactedSize = compactedSize_;
22262       return *this;
22263     }
22264 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22265     AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
22266     {
22267       type = type_;
22268       return *this;
22269     }
22270 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22271     AccelerationStructureCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
22272     {
22273       flags = flags_;
22274       return *this;
22275     }
22276 
setMaxGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22277     AccelerationStructureCreateInfoKHR & setMaxGeometryCount( uint32_t maxGeometryCount_ ) VULKAN_HPP_NOEXCEPT
22278     {
22279       maxGeometryCount = maxGeometryCount_;
22280       return *this;
22281     }
22282 
setPGeometryInfosVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22283     AccelerationStructureCreateInfoKHR & setPGeometryInfos( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos_ ) VULKAN_HPP_NOEXCEPT
22284     {
22285       pGeometryInfos = pGeometryInfos_;
22286       return *this;
22287     }
22288 
setDeviceAddressVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22289     AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
22290     {
22291       deviceAddress = deviceAddress_;
22292       return *this;
22293     }
22294 
22295 
operator VkAccelerationStructureCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22296     operator VkAccelerationStructureCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
22297     {
22298       return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( this );
22299     }
22300 
operator VkAccelerationStructureCreateInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22301     operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
22302     {
22303       return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR*>( this );
22304     }
22305 
22306 
22307 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22308     auto operator<=>( AccelerationStructureCreateInfoKHR const& ) const = default;
22309 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22310     bool operator==( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22311     {
22312       return ( sType == rhs.sType )
22313           && ( pNext == rhs.pNext )
22314           && ( compactedSize == rhs.compactedSize )
22315           && ( type == rhs.type )
22316           && ( flags == rhs.flags )
22317           && ( maxGeometryCount == rhs.maxGeometryCount )
22318           && ( pGeometryInfos == rhs.pGeometryInfos )
22319           && ( deviceAddress == rhs.deviceAddress );
22320     }
22321 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR22322     bool operator!=( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22323     {
22324       return !operator==( rhs );
22325     }
22326 #endif
22327 
22328 
22329 
22330   public:
22331     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
22332     const void* pNext = {};
22333     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
22334     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
22335     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
22336     uint32_t maxGeometryCount = {};
22337     const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos = {};
22338     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
22339 
22340   };
22341   static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), "struct and wrapper have different size!" );
22342   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
22343 
22344   template <>
22345   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
22346   {
22347     using Type = AccelerationStructureCreateInfoKHR;
22348   };
22349 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
22350 
22351   struct GeometryTrianglesNV
22352   {
22353     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
22354 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22355     VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {},
22356                                               VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {},
22357                                               uint32_t vertexCount_ = {},
22358                                               VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {},
22359                                               VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
22360                                               VULKAN_HPP_NAMESPACE::Buffer indexData_ = {},
22361                                               VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {},
22362                                               uint32_t indexCount_ = {},
22363                                               VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
22364                                               VULKAN_HPP_NAMESPACE::Buffer transformData_ = {},
22365                                               VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {} ) VULKAN_HPP_NOEXCEPT
22366       : vertexData( vertexData_ )
22367       , vertexOffset( vertexOffset_ )
22368       , vertexCount( vertexCount_ )
22369       , vertexStride( vertexStride_ )
22370       , vertexFormat( vertexFormat_ )
22371       , indexData( indexData_ )
22372       , indexOffset( indexOffset_ )
22373       , indexCount( indexCount_ )
22374       , indexType( indexType_ )
22375       , transformData( transformData_ )
22376       , transformOffset( transformOffset_ )
22377     {}
22378 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV22379     GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
22380     {
22381       memcpy( &pNext, &rhs.pNext, sizeof( GeometryTrianglesNV ) - offsetof( GeometryTrianglesNV, pNext ) );
22382       return *this;
22383     }
22384 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22385     GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
22386     {
22387       *this = rhs;
22388     }
22389 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV22390     GeometryTrianglesNV& operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
22391     {
22392       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>(&rhs);
22393       return *this;
22394     }
22395 
setPNextVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22396     GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22397     {
22398       pNext = pNext_;
22399       return *this;
22400     }
22401 
setVertexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22402     GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
22403     {
22404       vertexData = vertexData_;
22405       return *this;
22406     }
22407 
setVertexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22408     GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
22409     {
22410       vertexOffset = vertexOffset_;
22411       return *this;
22412     }
22413 
setVertexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22414     GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
22415     {
22416       vertexCount = vertexCount_;
22417       return *this;
22418     }
22419 
setVertexStrideVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22420     GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
22421     {
22422       vertexStride = vertexStride_;
22423       return *this;
22424     }
22425 
setVertexFormatVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22426     GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
22427     {
22428       vertexFormat = vertexFormat_;
22429       return *this;
22430     }
22431 
setIndexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22432     GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
22433     {
22434       indexData = indexData_;
22435       return *this;
22436     }
22437 
setIndexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22438     GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
22439     {
22440       indexOffset = indexOffset_;
22441       return *this;
22442     }
22443 
setIndexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22444     GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
22445     {
22446       indexCount = indexCount_;
22447       return *this;
22448     }
22449 
setIndexTypeVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22450     GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
22451     {
22452       indexType = indexType_;
22453       return *this;
22454     }
22455 
setTransformDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22456     GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
22457     {
22458       transformData = transformData_;
22459       return *this;
22460     }
22461 
setTransformOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV22462     GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
22463     {
22464       transformOffset = transformOffset_;
22465       return *this;
22466     }
22467 
22468 
operator VkGeometryTrianglesNV const&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV22469     operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT
22470     {
22471       return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
22472     }
22473 
operator VkGeometryTrianglesNV&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV22474     operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
22475     {
22476       return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
22477     }
22478 
22479 
22480 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22481     auto operator<=>( GeometryTrianglesNV const& ) const = default;
22482 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryTrianglesNV22483     bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22484     {
22485       return ( sType == rhs.sType )
22486           && ( pNext == rhs.pNext )
22487           && ( vertexData == rhs.vertexData )
22488           && ( vertexOffset == rhs.vertexOffset )
22489           && ( vertexCount == rhs.vertexCount )
22490           && ( vertexStride == rhs.vertexStride )
22491           && ( vertexFormat == rhs.vertexFormat )
22492           && ( indexData == rhs.indexData )
22493           && ( indexOffset == rhs.indexOffset )
22494           && ( indexCount == rhs.indexCount )
22495           && ( indexType == rhs.indexType )
22496           && ( transformData == rhs.transformData )
22497           && ( transformOffset == rhs.transformOffset );
22498     }
22499 
operator !=VULKAN_HPP_NAMESPACE::GeometryTrianglesNV22500     bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22501     {
22502       return !operator==( rhs );
22503     }
22504 #endif
22505 
22506 
22507 
22508   public:
22509     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
22510     const void* pNext = {};
22511     VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
22512     VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
22513     uint32_t vertexCount = {};
22514     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
22515     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
22516     VULKAN_HPP_NAMESPACE::Buffer indexData = {};
22517     VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
22518     uint32_t indexCount = {};
22519     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
22520     VULKAN_HPP_NAMESPACE::Buffer transformData = {};
22521     VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
22522 
22523   };
22524   static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" );
22525   static_assert( std::is_standard_layout<GeometryTrianglesNV>::value, "struct wrapper is not a standard layout!" );
22526 
22527   template <>
22528   struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
22529   {
22530     using Type = GeometryTrianglesNV;
22531   };
22532 
22533   struct GeometryAABBNV
22534   {
22535     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
22536 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV22537     VULKAN_HPP_CONSTEXPR GeometryAABBNV( VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {},
22538                                          uint32_t numAABBs_ = {},
22539                                          uint32_t stride_ = {},
22540                                          VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT
22541       : aabbData( aabbData_ )
22542       , numAABBs( numAABBs_ )
22543       , stride( stride_ )
22544       , offset( offset_ )
22545     {}
22546 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV22547     GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
22548     {
22549       memcpy( &pNext, &rhs.pNext, sizeof( GeometryAABBNV ) - offsetof( GeometryAABBNV, pNext ) );
22550       return *this;
22551     }
22552 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV22553     GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
22554     {
22555       *this = rhs;
22556     }
22557 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV22558     GeometryAABBNV& operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
22559     {
22560       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>(&rhs);
22561       return *this;
22562     }
22563 
setPNextVULKAN_HPP_NAMESPACE::GeometryAABBNV22564     GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22565     {
22566       pNext = pNext_;
22567       return *this;
22568     }
22569 
setAabbDataVULKAN_HPP_NAMESPACE::GeometryAABBNV22570     GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
22571     {
22572       aabbData = aabbData_;
22573       return *this;
22574     }
22575 
setNumAABBsVULKAN_HPP_NAMESPACE::GeometryAABBNV22576     GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
22577     {
22578       numAABBs = numAABBs_;
22579       return *this;
22580     }
22581 
setStrideVULKAN_HPP_NAMESPACE::GeometryAABBNV22582     GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
22583     {
22584       stride = stride_;
22585       return *this;
22586     }
22587 
setOffsetVULKAN_HPP_NAMESPACE::GeometryAABBNV22588     GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
22589     {
22590       offset = offset_;
22591       return *this;
22592     }
22593 
22594 
operator VkGeometryAABBNV const&VULKAN_HPP_NAMESPACE::GeometryAABBNV22595     operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT
22596     {
22597       return *reinterpret_cast<const VkGeometryAABBNV*>( this );
22598     }
22599 
operator VkGeometryAABBNV&VULKAN_HPP_NAMESPACE::GeometryAABBNV22600     operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
22601     {
22602       return *reinterpret_cast<VkGeometryAABBNV*>( this );
22603     }
22604 
22605 
22606 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22607     auto operator<=>( GeometryAABBNV const& ) const = default;
22608 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryAABBNV22609     bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22610     {
22611       return ( sType == rhs.sType )
22612           && ( pNext == rhs.pNext )
22613           && ( aabbData == rhs.aabbData )
22614           && ( numAABBs == rhs.numAABBs )
22615           && ( stride == rhs.stride )
22616           && ( offset == rhs.offset );
22617     }
22618 
operator !=VULKAN_HPP_NAMESPACE::GeometryAABBNV22619     bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22620     {
22621       return !operator==( rhs );
22622     }
22623 #endif
22624 
22625 
22626 
22627   public:
22628     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
22629     const void* pNext = {};
22630     VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
22631     uint32_t numAABBs = {};
22632     uint32_t stride = {};
22633     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
22634 
22635   };
22636   static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" );
22637   static_assert( std::is_standard_layout<GeometryAABBNV>::value, "struct wrapper is not a standard layout!" );
22638 
22639   template <>
22640   struct CppType<StructureType, StructureType::eGeometryAabbNV>
22641   {
22642     using Type = GeometryAABBNV;
22643   };
22644 
22645   struct GeometryDataNV
22646   {
22647 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV22648     VULKAN_HPP_CONSTEXPR GeometryDataNV( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {},
22649                                          VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {} ) VULKAN_HPP_NOEXCEPT
22650       : triangles( triangles_ )
22651       , aabbs( aabbs_ )
22652     {}
22653 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV22654     GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
22655     {
22656       *this = rhs;
22657     }
22658 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV22659     GeometryDataNV& operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
22660     {
22661       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>(&rhs);
22662       return *this;
22663     }
22664 
setTrianglesVULKAN_HPP_NAMESPACE::GeometryDataNV22665     GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
22666     {
22667       triangles = triangles_;
22668       return *this;
22669     }
22670 
setAabbsVULKAN_HPP_NAMESPACE::GeometryDataNV22671     GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
22672     {
22673       aabbs = aabbs_;
22674       return *this;
22675     }
22676 
22677 
operator VkGeometryDataNV const&VULKAN_HPP_NAMESPACE::GeometryDataNV22678     operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT
22679     {
22680       return *reinterpret_cast<const VkGeometryDataNV*>( this );
22681     }
22682 
operator VkGeometryDataNV&VULKAN_HPP_NAMESPACE::GeometryDataNV22683     operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
22684     {
22685       return *reinterpret_cast<VkGeometryDataNV*>( this );
22686     }
22687 
22688 
22689 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22690     auto operator<=>( GeometryDataNV const& ) const = default;
22691 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryDataNV22692     bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22693     {
22694       return ( triangles == rhs.triangles )
22695           && ( aabbs == rhs.aabbs );
22696     }
22697 
operator !=VULKAN_HPP_NAMESPACE::GeometryDataNV22698     bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22699     {
22700       return !operator==( rhs );
22701     }
22702 #endif
22703 
22704 
22705 
22706   public:
22707     VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
22708     VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
22709 
22710   };
22711   static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" );
22712   static_assert( std::is_standard_layout<GeometryDataNV>::value, "struct wrapper is not a standard layout!" );
22713 
22714   struct GeometryNV
22715   {
22716     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
22717 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV22718     VULKAN_HPP_CONSTEXPR GeometryNV( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles,
22719                                      VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {},
22720                                      VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {} ) VULKAN_HPP_NOEXCEPT
22721       : geometryType( geometryType_ )
22722       , geometry( geometry_ )
22723       , flags( flags_ )
22724     {}
22725 
operator =VULKAN_HPP_NAMESPACE::GeometryNV22726     GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
22727     {
22728       memcpy( &pNext, &rhs.pNext, sizeof( GeometryNV ) - offsetof( GeometryNV, pNext ) );
22729       return *this;
22730     }
22731 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV22732     GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
22733     {
22734       *this = rhs;
22735     }
22736 
operator =VULKAN_HPP_NAMESPACE::GeometryNV22737     GeometryNV& operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
22738     {
22739       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>(&rhs);
22740       return *this;
22741     }
22742 
setPNextVULKAN_HPP_NAMESPACE::GeometryNV22743     GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22744     {
22745       pNext = pNext_;
22746       return *this;
22747     }
22748 
setGeometryTypeVULKAN_HPP_NAMESPACE::GeometryNV22749     GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
22750     {
22751       geometryType = geometryType_;
22752       return *this;
22753     }
22754 
setGeometryVULKAN_HPP_NAMESPACE::GeometryNV22755     GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
22756     {
22757       geometry = geometry_;
22758       return *this;
22759     }
22760 
setFlagsVULKAN_HPP_NAMESPACE::GeometryNV22761     GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
22762     {
22763       flags = flags_;
22764       return *this;
22765     }
22766 
22767 
operator VkGeometryNV const&VULKAN_HPP_NAMESPACE::GeometryNV22768     operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT
22769     {
22770       return *reinterpret_cast<const VkGeometryNV*>( this );
22771     }
22772 
operator VkGeometryNV&VULKAN_HPP_NAMESPACE::GeometryNV22773     operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
22774     {
22775       return *reinterpret_cast<VkGeometryNV*>( this );
22776     }
22777 
22778 
22779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22780     auto operator<=>( GeometryNV const& ) const = default;
22781 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryNV22782     bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22783     {
22784       return ( sType == rhs.sType )
22785           && ( pNext == rhs.pNext )
22786           && ( geometryType == rhs.geometryType )
22787           && ( geometry == rhs.geometry )
22788           && ( flags == rhs.flags );
22789     }
22790 
operator !=VULKAN_HPP_NAMESPACE::GeometryNV22791     bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22792     {
22793       return !operator==( rhs );
22794     }
22795 #endif
22796 
22797 
22798 
22799   public:
22800     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
22801     const void* pNext = {};
22802     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
22803     VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
22804     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
22805 
22806   };
22807   static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" );
22808   static_assert( std::is_standard_layout<GeometryNV>::value, "struct wrapper is not a standard layout!" );
22809 
22810   template <>
22811   struct CppType<StructureType, StructureType::eGeometryNV>
22812   {
22813     using Type = GeometryNV;
22814   };
22815 
22816   struct AccelerationStructureInfoNV
22817   {
22818     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
22819 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22820     VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {},
22821                                                       VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {},
22822                                                       uint32_t instanceCount_ = {},
22823                                                       uint32_t geometryCount_ = {},
22824                                                       const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ = {} ) VULKAN_HPP_NOEXCEPT
22825       : type( type_ )
22826       , flags( flags_ )
22827       , instanceCount( instanceCount_ )
22828       , geometryCount( geometryCount_ )
22829       , pGeometries( pGeometries_ )
22830     {}
22831 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22832     AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
22833     {
22834       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureInfoNV ) - offsetof( AccelerationStructureInfoNV, pNext ) );
22835       return *this;
22836     }
22837 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22838     AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
22839     {
22840       *this = rhs;
22841     }
22842 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22843     AccelerationStructureInfoNV& operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
22844     {
22845       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>(&rhs);
22846       return *this;
22847     }
22848 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22849     AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22850     {
22851       pNext = pNext_;
22852       return *this;
22853     }
22854 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22855     AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
22856     {
22857       type = type_;
22858       return *this;
22859     }
22860 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22861     AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
22862     {
22863       flags = flags_;
22864       return *this;
22865     }
22866 
setInstanceCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22867     AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
22868     {
22869       instanceCount = instanceCount_;
22870       return *this;
22871     }
22872 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22873     AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
22874     {
22875       geometryCount = geometryCount_;
22876       return *this;
22877     }
22878 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22879     AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT
22880     {
22881       pGeometries = pGeometries_;
22882       return *this;
22883     }
22884 
22885 
operator VkAccelerationStructureInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22886     operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT
22887     {
22888       return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
22889     }
22890 
operator VkAccelerationStructureInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22891     operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
22892     {
22893       return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
22894     }
22895 
22896 
22897 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22898     auto operator<=>( AccelerationStructureInfoNV const& ) const = default;
22899 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22900     bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22901     {
22902       return ( sType == rhs.sType )
22903           && ( pNext == rhs.pNext )
22904           && ( type == rhs.type )
22905           && ( flags == rhs.flags )
22906           && ( instanceCount == rhs.instanceCount )
22907           && ( geometryCount == rhs.geometryCount )
22908           && ( pGeometries == rhs.pGeometries );
22909     }
22910 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV22911     bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22912     {
22913       return !operator==( rhs );
22914     }
22915 #endif
22916 
22917 
22918 
22919   public:
22920     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
22921     const void* pNext = {};
22922     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
22923     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
22924     uint32_t instanceCount = {};
22925     uint32_t geometryCount = {};
22926     const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {};
22927 
22928   };
22929   static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" );
22930   static_assert( std::is_standard_layout<AccelerationStructureInfoNV>::value, "struct wrapper is not a standard layout!" );
22931 
22932   template <>
22933   struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
22934   {
22935     using Type = AccelerationStructureInfoNV;
22936   };
22937 
22938   struct AccelerationStructureCreateInfoNV
22939   {
22940     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
22941 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22942     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {},
22943                                                             VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {} ) VULKAN_HPP_NOEXCEPT
22944       : compactedSize( compactedSize_ )
22945       , info( info_ )
22946     {}
22947 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22948     AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
22949     {
22950       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureCreateInfoNV ) - offsetof( AccelerationStructureCreateInfoNV, pNext ) );
22951       return *this;
22952     }
22953 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22954     AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
22955     {
22956       *this = rhs;
22957     }
22958 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22959     AccelerationStructureCreateInfoNV& operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
22960     {
22961       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>(&rhs);
22962       return *this;
22963     }
22964 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22965     AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22966     {
22967       pNext = pNext_;
22968       return *this;
22969     }
22970 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22971     AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
22972     {
22973       compactedSize = compactedSize_;
22974       return *this;
22975     }
22976 
setInfoVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22977     AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
22978     {
22979       info = info_;
22980       return *this;
22981     }
22982 
22983 
operator VkAccelerationStructureCreateInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22984     operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
22985     {
22986       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
22987     }
22988 
operator VkAccelerationStructureCreateInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22989     operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
22990     {
22991       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
22992     }
22993 
22994 
22995 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22996     auto operator<=>( AccelerationStructureCreateInfoNV const& ) const = default;
22997 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV22998     bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22999     {
23000       return ( sType == rhs.sType )
23001           && ( pNext == rhs.pNext )
23002           && ( compactedSize == rhs.compactedSize )
23003           && ( info == rhs.info );
23004     }
23005 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV23006     bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23007     {
23008       return !operator==( rhs );
23009     }
23010 #endif
23011 
23012 
23013 
23014   public:
23015     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
23016     const void* pNext = {};
23017     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
23018     VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
23019 
23020   };
23021   static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" );
23022   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
23023 
23024   template <>
23025   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
23026   {
23027     using Type = AccelerationStructureCreateInfoNV;
23028   };
23029 
23030 #ifdef VK_ENABLE_BETA_EXTENSIONS
23031   struct AccelerationStructureDeviceAddressInfoKHR
23032   {
23033     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
23034 
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23035     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {} ) VULKAN_HPP_NOEXCEPT
23036       : accelerationStructure( accelerationStructure_ )
23037     {}
23038 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23039     AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23040     {
23041       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureDeviceAddressInfoKHR ) - offsetof( AccelerationStructureDeviceAddressInfoKHR, pNext ) );
23042       return *this;
23043     }
23044 
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23045     AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23046     {
23047       *this = rhs;
23048     }
23049 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23050     AccelerationStructureDeviceAddressInfoKHR& operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23051     {
23052       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>(&rhs);
23053       return *this;
23054     }
23055 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23056     AccelerationStructureDeviceAddressInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23057     {
23058       pNext = pNext_;
23059       return *this;
23060     }
23061 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23062     AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
23063     {
23064       accelerationStructure = accelerationStructure_;
23065       return *this;
23066     }
23067 
23068 
operator VkAccelerationStructureDeviceAddressInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23069     operator VkAccelerationStructureDeviceAddressInfoKHR const&() const VULKAN_HPP_NOEXCEPT
23070     {
23071       return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( this );
23072     }
23073 
operator VkAccelerationStructureDeviceAddressInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23074     operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
23075     {
23076       return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR*>( this );
23077     }
23078 
23079 
23080 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23081     auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const& ) const = default;
23082 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23083     bool operator==( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23084     {
23085       return ( sType == rhs.sType )
23086           && ( pNext == rhs.pNext )
23087           && ( accelerationStructure == rhs.accelerationStructure );
23088     }
23089 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR23090     bool operator!=( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23091     {
23092       return !operator==( rhs );
23093     }
23094 #endif
23095 
23096 
23097 
23098   public:
23099     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
23100     const void* pNext = {};
23101     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
23102 
23103   };
23104   static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), "struct and wrapper have different size!" );
23105   static_assert( std::is_standard_layout<AccelerationStructureDeviceAddressInfoKHR>::value, "struct wrapper is not a standard layout!" );
23106 
23107   template <>
23108   struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
23109   {
23110     using Type = AccelerationStructureDeviceAddressInfoKHR;
23111   };
23112 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
23113 
23114   struct TransformMatrixKHR
23115   {
23116 
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR23117     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( std::array<std::array<float,4>,3> const& matrix_ = {} ) VULKAN_HPP_NOEXCEPT
23118       : matrix( matrix_ )
23119     {}
23120 
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR23121     TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23122     {
23123       *this = rhs;
23124     }
23125 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR23126     TransformMatrixKHR& operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23127     {
23128       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>(&rhs);
23129       return *this;
23130     }
23131 
setMatrixVULKAN_HPP_NAMESPACE::TransformMatrixKHR23132     TransformMatrixKHR & setMatrix( std::array<std::array<float,4>,3> matrix_ ) VULKAN_HPP_NOEXCEPT
23133     {
23134       matrix = matrix_;
23135       return *this;
23136     }
23137 
23138 
operator VkTransformMatrixKHR const&VULKAN_HPP_NAMESPACE::TransformMatrixKHR23139     operator VkTransformMatrixKHR const&() const VULKAN_HPP_NOEXCEPT
23140     {
23141       return *reinterpret_cast<const VkTransformMatrixKHR*>( this );
23142     }
23143 
operator VkTransformMatrixKHR&VULKAN_HPP_NAMESPACE::TransformMatrixKHR23144     operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
23145     {
23146       return *reinterpret_cast<VkTransformMatrixKHR*>( this );
23147     }
23148 
23149 
23150 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23151     auto operator<=>( TransformMatrixKHR const& ) const = default;
23152 #else
operator ==VULKAN_HPP_NAMESPACE::TransformMatrixKHR23153     bool operator==( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23154     {
23155       return ( matrix == rhs.matrix );
23156     }
23157 
operator !=VULKAN_HPP_NAMESPACE::TransformMatrixKHR23158     bool operator!=( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23159     {
23160       return !operator==( rhs );
23161     }
23162 #endif
23163 
23164 
23165 
23166   public:
23167     VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
23168 
23169   };
23170   static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), "struct and wrapper have different size!" );
23171   static_assert( std::is_standard_layout<TransformMatrixKHR>::value, "struct wrapper is not a standard layout!" );
23172 
23173   struct AccelerationStructureInstanceKHR
23174   {
23175 
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23176     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {},
23177                                                               uint32_t instanceCustomIndex_ = {},
23178                                                               uint32_t mask_ = {},
23179                                                               uint32_t instanceShaderBindingTableRecordOffset_ = {},
23180                                                               VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
23181                                                               uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
23182       : transform( transform_ )
23183       , instanceCustomIndex( instanceCustomIndex_ )
23184       , mask( mask_ )
23185       , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
23186       , flags( flags_ )
23187       , accelerationStructureReference( accelerationStructureReference_ )
23188     {}
23189 
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23190     AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23191     {
23192       *this = rhs;
23193     }
23194 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23195     AccelerationStructureInstanceKHR& operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23196     {
23197       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>(&rhs);
23198       return *this;
23199     }
23200 
setTransformVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23201     AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
23202     {
23203       transform = transform_;
23204       return *this;
23205     }
23206 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23207     AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
23208     {
23209       instanceCustomIndex = instanceCustomIndex_;
23210       return *this;
23211     }
23212 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23213     AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
23214     {
23215       mask = mask_;
23216       return *this;
23217     }
23218 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23219     AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
23220     {
23221       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
23222       return *this;
23223     }
23224 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23225     AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
23226     {
23227       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
23228       return *this;
23229     }
23230 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23231     AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
23232     {
23233       accelerationStructureReference = accelerationStructureReference_;
23234       return *this;
23235     }
23236 
23237 
operator VkAccelerationStructureInstanceKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23238     operator VkAccelerationStructureInstanceKHR const&() const VULKAN_HPP_NOEXCEPT
23239     {
23240       return *reinterpret_cast<const VkAccelerationStructureInstanceKHR*>( this );
23241     }
23242 
operator VkAccelerationStructureInstanceKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23243     operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
23244     {
23245       return *reinterpret_cast<VkAccelerationStructureInstanceKHR*>( this );
23246     }
23247 
23248 
23249 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23250     auto operator<=>( AccelerationStructureInstanceKHR const& ) const = default;
23251 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23252     bool operator==( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23253     {
23254       return ( transform == rhs.transform )
23255           && ( instanceCustomIndex == rhs.instanceCustomIndex )
23256           && ( mask == rhs.mask )
23257           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
23258           && ( flags == rhs.flags )
23259           && ( accelerationStructureReference == rhs.accelerationStructureReference );
23260     }
23261 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR23262     bool operator!=( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23263     {
23264       return !operator==( rhs );
23265     }
23266 #endif
23267 
23268 
23269 
23270   public:
23271     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
23272     uint32_t instanceCustomIndex : 24;
23273     uint32_t mask : 8;
23274     uint32_t instanceShaderBindingTableRecordOffset : 24;
23275     VkGeometryInstanceFlagsKHR flags : 8;
23276     uint64_t accelerationStructureReference = {};
23277 
23278   };
23279   static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), "struct and wrapper have different size!" );
23280   static_assert( std::is_standard_layout<AccelerationStructureInstanceKHR>::value, "struct wrapper is not a standard layout!" );
23281 
23282 #ifdef VK_ENABLE_BETA_EXTENSIONS
23283   struct AccelerationStructureMemoryRequirementsInfoKHR
23284   {
23285     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
23286 
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23287     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR::eObject,
23288                                                                          VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType_ = VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR::eHost,
23289                                                                          VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {} ) VULKAN_HPP_NOEXCEPT
23290       : type( type_ )
23291       , buildType( buildType_ )
23292       , accelerationStructure( accelerationStructure_ )
23293     {}
23294 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23295     AccelerationStructureMemoryRequirementsInfoKHR & operator=( AccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23296     {
23297       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) - offsetof( AccelerationStructureMemoryRequirementsInfoKHR, pNext ) );
23298       return *this;
23299     }
23300 
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23301     AccelerationStructureMemoryRequirementsInfoKHR( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23302     {
23303       *this = rhs;
23304     }
23305 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23306     AccelerationStructureMemoryRequirementsInfoKHR& operator=( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23307     {
23308       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR const *>(&rhs);
23309       return *this;
23310     }
23311 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23312     AccelerationStructureMemoryRequirementsInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23313     {
23314       pNext = pNext_;
23315       return *this;
23316     }
23317 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23318     AccelerationStructureMemoryRequirementsInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
23319     {
23320       type = type_;
23321       return *this;
23322     }
23323 
setBuildTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23324     AccelerationStructureMemoryRequirementsInfoKHR & setBuildType( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType_ ) VULKAN_HPP_NOEXCEPT
23325     {
23326       buildType = buildType_;
23327       return *this;
23328     }
23329 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23330     AccelerationStructureMemoryRequirementsInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
23331     {
23332       accelerationStructure = accelerationStructure_;
23333       return *this;
23334     }
23335 
23336 
operator VkAccelerationStructureMemoryRequirementsInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23337     operator VkAccelerationStructureMemoryRequirementsInfoKHR const&() const VULKAN_HPP_NOEXCEPT
23338     {
23339       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
23340     }
23341 
operator VkAccelerationStructureMemoryRequirementsInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23342     operator VkAccelerationStructureMemoryRequirementsInfoKHR &() VULKAN_HPP_NOEXCEPT
23343     {
23344       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
23345     }
23346 
23347 
23348 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23349     auto operator<=>( AccelerationStructureMemoryRequirementsInfoKHR const& ) const = default;
23350 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23351     bool operator==( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23352     {
23353       return ( sType == rhs.sType )
23354           && ( pNext == rhs.pNext )
23355           && ( type == rhs.type )
23356           && ( buildType == rhs.buildType )
23357           && ( accelerationStructure == rhs.accelerationStructure );
23358     }
23359 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR23360     bool operator!=( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23361     {
23362       return !operator==( rhs );
23363     }
23364 #endif
23365 
23366 
23367 
23368   public:
23369     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
23370     const void* pNext = {};
23371     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR::eObject;
23372     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType = VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR::eHost;
23373     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
23374 
23375   };
23376   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoKHR ), "struct and wrapper have different size!" );
23377   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoKHR>::value, "struct wrapper is not a standard layout!" );
23378 
23379   template <>
23380   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoKHR>
23381   {
23382     using Type = AccelerationStructureMemoryRequirementsInfoKHR;
23383   };
23384 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
23385 
23386   struct AccelerationStructureMemoryRequirementsInfoNV
23387   {
23388     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
23389 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23390     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = {},
23391                                                                         VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {} ) VULKAN_HPP_NOEXCEPT
23392       : type( type_ )
23393       , accelerationStructure( accelerationStructure_ )
23394     {}
23395 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23396     AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
23397     {
23398       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureMemoryRequirementsInfoNV ) - offsetof( AccelerationStructureMemoryRequirementsInfoNV, pNext ) );
23399       return *this;
23400     }
23401 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23402     AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
23403     {
23404       *this = rhs;
23405     }
23406 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23407     AccelerationStructureMemoryRequirementsInfoNV& operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
23408     {
23409       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>(&rhs);
23410       return *this;
23411     }
23412 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23413     AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23414     {
23415       pNext = pNext_;
23416       return *this;
23417     }
23418 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23419     AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
23420     {
23421       type = type_;
23422       return *this;
23423     }
23424 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23425     AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
23426     {
23427       accelerationStructure = accelerationStructure_;
23428       return *this;
23429     }
23430 
23431 
operator VkAccelerationStructureMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23432     operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
23433     {
23434       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
23435     }
23436 
operator VkAccelerationStructureMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23437     operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
23438     {
23439       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
23440     }
23441 
23442 
23443 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23444     auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const& ) const = default;
23445 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23446     bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23447     {
23448       return ( sType == rhs.sType )
23449           && ( pNext == rhs.pNext )
23450           && ( type == rhs.type )
23451           && ( accelerationStructure == rhs.accelerationStructure );
23452     }
23453 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV23454     bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23455     {
23456       return !operator==( rhs );
23457     }
23458 #endif
23459 
23460 
23461 
23462   public:
23463     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
23464     const void* pNext = {};
23465     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = {};
23466     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
23467 
23468   };
23469   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
23470   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
23471 
23472   template <>
23473   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
23474   {
23475     using Type = AccelerationStructureMemoryRequirementsInfoNV;
23476   };
23477 
23478 #ifdef VK_ENABLE_BETA_EXTENSIONS
23479   struct AccelerationStructureVersionKHR
23480   {
23481     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionKHR;
23482 
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23483     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionKHR( const uint8_t* versionData_ = {} ) VULKAN_HPP_NOEXCEPT
23484       : versionData( versionData_ )
23485     {}
23486 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23487     AccelerationStructureVersionKHR & operator=( AccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23488     {
23489       memcpy( &pNext, &rhs.pNext, sizeof( AccelerationStructureVersionKHR ) - offsetof( AccelerationStructureVersionKHR, pNext ) );
23490       return *this;
23491     }
23492 
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23493     AccelerationStructureVersionKHR( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23494     {
23495       *this = rhs;
23496     }
23497 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23498     AccelerationStructureVersionKHR& operator=( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23499     {
23500       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR const *>(&rhs);
23501       return *this;
23502     }
23503 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23504     AccelerationStructureVersionKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23505     {
23506       pNext = pNext_;
23507       return *this;
23508     }
23509 
setVersionDataVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23510     AccelerationStructureVersionKHR & setVersionData( const uint8_t* versionData_ ) VULKAN_HPP_NOEXCEPT
23511     {
23512       versionData = versionData_;
23513       return *this;
23514     }
23515 
23516 
operator VkAccelerationStructureVersionKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23517     operator VkAccelerationStructureVersionKHR const&() const VULKAN_HPP_NOEXCEPT
23518     {
23519       return *reinterpret_cast<const VkAccelerationStructureVersionKHR*>( this );
23520     }
23521 
operator VkAccelerationStructureVersionKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23522     operator VkAccelerationStructureVersionKHR &() VULKAN_HPP_NOEXCEPT
23523     {
23524       return *reinterpret_cast<VkAccelerationStructureVersionKHR*>( this );
23525     }
23526 
23527 
23528 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23529     auto operator<=>( AccelerationStructureVersionKHR const& ) const = default;
23530 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23531     bool operator==( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23532     {
23533       return ( sType == rhs.sType )
23534           && ( pNext == rhs.pNext )
23535           && ( versionData == rhs.versionData );
23536     }
23537 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR23538     bool operator!=( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23539     {
23540       return !operator==( rhs );
23541     }
23542 #endif
23543 
23544 
23545 
23546   public:
23547     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionKHR;
23548     const void* pNext = {};
23549     const uint8_t* versionData = {};
23550 
23551   };
23552   static_assert( sizeof( AccelerationStructureVersionKHR ) == sizeof( VkAccelerationStructureVersionKHR ), "struct and wrapper have different size!" );
23553   static_assert( std::is_standard_layout<AccelerationStructureVersionKHR>::value, "struct wrapper is not a standard layout!" );
23554 
23555   template <>
23556   struct CppType<StructureType, StructureType::eAccelerationStructureVersionKHR>
23557   {
23558     using Type = AccelerationStructureVersionKHR;
23559   };
23560 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
23561 
23562   struct AcquireNextImageInfoKHR
23563   {
23564     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
23565 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23566     VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
23567                                                   uint64_t timeout_ = {},
23568                                                   VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
23569                                                   VULKAN_HPP_NAMESPACE::Fence fence_ = {},
23570                                                   uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT
23571       : swapchain( swapchain_ )
23572       , timeout( timeout_ )
23573       , semaphore( semaphore_ )
23574       , fence( fence_ )
23575       , deviceMask( deviceMask_ )
23576     {}
23577 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23578     AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23579     {
23580       memcpy( &pNext, &rhs.pNext, sizeof( AcquireNextImageInfoKHR ) - offsetof( AcquireNextImageInfoKHR, pNext ) );
23581       return *this;
23582     }
23583 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23584     AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23585     {
23586       *this = rhs;
23587     }
23588 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23589     AcquireNextImageInfoKHR& operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23590     {
23591       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>(&rhs);
23592       return *this;
23593     }
23594 
setPNextVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23595     AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23596     {
23597       pNext = pNext_;
23598       return *this;
23599     }
23600 
setSwapchainVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23601     AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
23602     {
23603       swapchain = swapchain_;
23604       return *this;
23605     }
23606 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23607     AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
23608     {
23609       timeout = timeout_;
23610       return *this;
23611     }
23612 
setSemaphoreVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23613     AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
23614     {
23615       semaphore = semaphore_;
23616       return *this;
23617     }
23618 
setFenceVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23619     AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
23620     {
23621       fence = fence_;
23622       return *this;
23623     }
23624 
setDeviceMaskVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23625     AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
23626     {
23627       deviceMask = deviceMask_;
23628       return *this;
23629     }
23630 
23631 
operator VkAcquireNextImageInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23632     operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT
23633     {
23634       return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
23635     }
23636 
operator VkAcquireNextImageInfoKHR&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23637     operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
23638     {
23639       return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
23640     }
23641 
23642 
23643 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23644     auto operator<=>( AcquireNextImageInfoKHR const& ) const = default;
23645 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23646     bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23647     {
23648       return ( sType == rhs.sType )
23649           && ( pNext == rhs.pNext )
23650           && ( swapchain == rhs.swapchain )
23651           && ( timeout == rhs.timeout )
23652           && ( semaphore == rhs.semaphore )
23653           && ( fence == rhs.fence )
23654           && ( deviceMask == rhs.deviceMask );
23655     }
23656 
operator !=VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR23657     bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23658     {
23659       return !operator==( rhs );
23660     }
23661 #endif
23662 
23663 
23664 
23665   public:
23666     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
23667     const void* pNext = {};
23668     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
23669     uint64_t timeout = {};
23670     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
23671     VULKAN_HPP_NAMESPACE::Fence fence = {};
23672     uint32_t deviceMask = {};
23673 
23674   };
23675   static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" );
23676   static_assert( std::is_standard_layout<AcquireNextImageInfoKHR>::value, "struct wrapper is not a standard layout!" );
23677 
23678   template <>
23679   struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
23680   {
23681     using Type = AcquireNextImageInfoKHR;
23682   };
23683 
23684   struct AcquireProfilingLockInfoKHR
23685   {
23686     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
23687 
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23688     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {},
23689                                                       uint64_t timeout_ = {} ) VULKAN_HPP_NOEXCEPT
23690       : flags( flags_ )
23691       , timeout( timeout_ )
23692     {}
23693 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23694     AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23695     {
23696       memcpy( &pNext, &rhs.pNext, sizeof( AcquireProfilingLockInfoKHR ) - offsetof( AcquireProfilingLockInfoKHR, pNext ) );
23697       return *this;
23698     }
23699 
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23700     AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23701     {
23702       *this = rhs;
23703     }
23704 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23705     AcquireProfilingLockInfoKHR& operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
23706     {
23707       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>(&rhs);
23708       return *this;
23709     }
23710 
setPNextVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23711     AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23712     {
23713       pNext = pNext_;
23714       return *this;
23715     }
23716 
setFlagsVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23717     AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
23718     {
23719       flags = flags_;
23720       return *this;
23721     }
23722 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23723     AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
23724     {
23725       timeout = timeout_;
23726       return *this;
23727     }
23728 
23729 
operator VkAcquireProfilingLockInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23730     operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT
23731     {
23732       return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( this );
23733     }
23734 
operator VkAcquireProfilingLockInfoKHR&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23735     operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
23736     {
23737       return *reinterpret_cast<VkAcquireProfilingLockInfoKHR*>( this );
23738     }
23739 
23740 
23741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23742     auto operator<=>( AcquireProfilingLockInfoKHR const& ) const = default;
23743 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23744     bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23745     {
23746       return ( sType == rhs.sType )
23747           && ( pNext == rhs.pNext )
23748           && ( flags == rhs.flags )
23749           && ( timeout == rhs.timeout );
23750     }
23751 
operator !=VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR23752     bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23753     {
23754       return !operator==( rhs );
23755     }
23756 #endif
23757 
23758 
23759 
23760   public:
23761     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
23762     const void* pNext = {};
23763     VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
23764     uint64_t timeout = {};
23765 
23766   };
23767   static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" );
23768   static_assert( std::is_standard_layout<AcquireProfilingLockInfoKHR>::value, "struct wrapper is not a standard layout!" );
23769 
23770   template <>
23771   struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
23772   {
23773     using Type = AcquireProfilingLockInfoKHR;
23774   };
23775 
23776   struct AllocationCallbacks
23777   {
23778 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks23779     VULKAN_HPP_CONSTEXPR AllocationCallbacks( void* pUserData_ = {},
23780                                               PFN_vkAllocationFunction pfnAllocation_ = {},
23781                                               PFN_vkReallocationFunction pfnReallocation_ = {},
23782                                               PFN_vkFreeFunction pfnFree_ = {},
23783                                               PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {},
23784                                               PFN_vkInternalFreeNotification pfnInternalFree_ = {} ) VULKAN_HPP_NOEXCEPT
23785       : pUserData( pUserData_ )
23786       , pfnAllocation( pfnAllocation_ )
23787       , pfnReallocation( pfnReallocation_ )
23788       , pfnFree( pfnFree_ )
23789       , pfnInternalAllocation( pfnInternalAllocation_ )
23790       , pfnInternalFree( pfnInternalFree_ )
23791     {}
23792 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks23793     AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
23794     {
23795       *this = rhs;
23796     }
23797 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks23798     AllocationCallbacks& operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
23799     {
23800       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>(&rhs);
23801       return *this;
23802     }
23803 
setPUserDataVULKAN_HPP_NAMESPACE::AllocationCallbacks23804     AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
23805     {
23806       pUserData = pUserData_;
23807       return *this;
23808     }
23809 
setPfnAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks23810     AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
23811     {
23812       pfnAllocation = pfnAllocation_;
23813       return *this;
23814     }
23815 
setPfnReallocationVULKAN_HPP_NAMESPACE::AllocationCallbacks23816     AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
23817     {
23818       pfnReallocation = pfnReallocation_;
23819       return *this;
23820     }
23821 
setPfnFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks23822     AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
23823     {
23824       pfnFree = pfnFree_;
23825       return *this;
23826     }
23827 
setPfnInternalAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks23828     AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
23829     {
23830       pfnInternalAllocation = pfnInternalAllocation_;
23831       return *this;
23832     }
23833 
setPfnInternalFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks23834     AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
23835     {
23836       pfnInternalFree = pfnInternalFree_;
23837       return *this;
23838     }
23839 
23840 
operator VkAllocationCallbacks const&VULKAN_HPP_NAMESPACE::AllocationCallbacks23841     operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT
23842     {
23843       return *reinterpret_cast<const VkAllocationCallbacks*>( this );
23844     }
23845 
operator VkAllocationCallbacks&VULKAN_HPP_NAMESPACE::AllocationCallbacks23846     operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
23847     {
23848       return *reinterpret_cast<VkAllocationCallbacks*>( this );
23849     }
23850 
23851 
23852 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23853     auto operator<=>( AllocationCallbacks const& ) const = default;
23854 #else
operator ==VULKAN_HPP_NAMESPACE::AllocationCallbacks23855     bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
23856     {
23857       return ( pUserData == rhs.pUserData )
23858           && ( pfnAllocation == rhs.pfnAllocation )
23859           && ( pfnReallocation == rhs.pfnReallocation )
23860           && ( pfnFree == rhs.pfnFree )
23861           && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
23862           && ( pfnInternalFree == rhs.pfnInternalFree );
23863     }
23864 
operator !=VULKAN_HPP_NAMESPACE::AllocationCallbacks23865     bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
23866     {
23867       return !operator==( rhs );
23868     }
23869 #endif
23870 
23871 
23872 
23873   public:
23874     void* pUserData = {};
23875     PFN_vkAllocationFunction pfnAllocation = {};
23876     PFN_vkReallocationFunction pfnReallocation = {};
23877     PFN_vkFreeFunction pfnFree = {};
23878     PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
23879     PFN_vkInternalFreeNotification pfnInternalFree = {};
23880 
23881   };
23882   static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" );
23883   static_assert( std::is_standard_layout<AllocationCallbacks>::value, "struct wrapper is not a standard layout!" );
23884 
23885   struct ComponentMapping
23886   {
23887 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping23888     VULKAN_HPP_CONSTEXPR ComponentMapping( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
23889                                            VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
23890                                            VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
23891                                            VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity ) VULKAN_HPP_NOEXCEPT
23892       : r( r_ )
23893       , g( g_ )
23894       , b( b_ )
23895       , a( a_ )
23896     {}
23897 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping23898     ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
23899     {
23900       *this = rhs;
23901     }
23902 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping23903     ComponentMapping& operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
23904     {
23905       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>(&rhs);
23906       return *this;
23907     }
23908 
setRVULKAN_HPP_NAMESPACE::ComponentMapping23909     ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
23910     {
23911       r = r_;
23912       return *this;
23913     }
23914 
setGVULKAN_HPP_NAMESPACE::ComponentMapping23915     ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
23916     {
23917       g = g_;
23918       return *this;
23919     }
23920 
setBVULKAN_HPP_NAMESPACE::ComponentMapping23921     ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
23922     {
23923       b = b_;
23924       return *this;
23925     }
23926 
setAVULKAN_HPP_NAMESPACE::ComponentMapping23927     ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
23928     {
23929       a = a_;
23930       return *this;
23931     }
23932 
23933 
operator VkComponentMapping const&VULKAN_HPP_NAMESPACE::ComponentMapping23934     operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT
23935     {
23936       return *reinterpret_cast<const VkComponentMapping*>( this );
23937     }
23938 
operator VkComponentMapping&VULKAN_HPP_NAMESPACE::ComponentMapping23939     operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
23940     {
23941       return *reinterpret_cast<VkComponentMapping*>( this );
23942     }
23943 
23944 
23945 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23946     auto operator<=>( ComponentMapping const& ) const = default;
23947 #else
operator ==VULKAN_HPP_NAMESPACE::ComponentMapping23948     bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
23949     {
23950       return ( r == rhs.r )
23951           && ( g == rhs.g )
23952           && ( b == rhs.b )
23953           && ( a == rhs.a );
23954     }
23955 
operator !=VULKAN_HPP_NAMESPACE::ComponentMapping23956     bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
23957     {
23958       return !operator==( rhs );
23959     }
23960 #endif
23961 
23962 
23963 
23964   public:
23965     VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
23966     VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
23967     VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
23968     VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
23969 
23970   };
23971   static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" );
23972   static_assert( std::is_standard_layout<ComponentMapping>::value, "struct wrapper is not a standard layout!" );
23973 
23974 #ifdef VK_USE_PLATFORM_ANDROID_KHR
23975   struct AndroidHardwareBufferFormatPropertiesANDROID
23976   {
23977     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
23978 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID23979     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
23980                                                                        uint64_t externalFormat_ = {},
23981                                                                        VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {},
23982                                                                        VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
23983                                                                        VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
23984                                                                        VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
23985                                                                        VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
23986                                                                        VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven ) VULKAN_HPP_NOEXCEPT
23987       : format( format_ )
23988       , externalFormat( externalFormat_ )
23989       , formatFeatures( formatFeatures_ )
23990       , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
23991       , suggestedYcbcrModel( suggestedYcbcrModel_ )
23992       , suggestedYcbcrRange( suggestedYcbcrRange_ )
23993       , suggestedXChromaOffset( suggestedXChromaOffset_ )
23994       , suggestedYChromaOffset( suggestedYChromaOffset_ )
23995     {}
23996 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID23997     AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
23998     {
23999       memcpy( &pNext, &rhs.pNext, sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) - offsetof( AndroidHardwareBufferFormatPropertiesANDROID, pNext ) );
24000       return *this;
24001     }
24002 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID24003     AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24004     {
24005       *this = rhs;
24006     }
24007 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID24008     AndroidHardwareBufferFormatPropertiesANDROID& operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24009     {
24010       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>(&rhs);
24011       return *this;
24012     }
24013 
24014 
operator VkAndroidHardwareBufferFormatPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID24015     operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
24016     {
24017       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
24018     }
24019 
operator VkAndroidHardwareBufferFormatPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID24020     operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
24021     {
24022       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
24023     }
24024 
24025 
24026 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24027     auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const& ) const = default;
24028 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID24029     bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
24030     {
24031       return ( sType == rhs.sType )
24032           && ( pNext == rhs.pNext )
24033           && ( format == rhs.format )
24034           && ( externalFormat == rhs.externalFormat )
24035           && ( formatFeatures == rhs.formatFeatures )
24036           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
24037           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
24038           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
24039           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
24040           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
24041     }
24042 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID24043     bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
24044     {
24045       return !operator==( rhs );
24046     }
24047 #endif
24048 
24049 
24050 
24051   public:
24052     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
24053     void* pNext = {};
24054     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
24055     uint64_t externalFormat = {};
24056     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
24057     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
24058     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
24059     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
24060     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
24061     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
24062 
24063   };
24064   static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
24065   static_assert( std::is_standard_layout<AndroidHardwareBufferFormatPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
24066 
24067   template <>
24068   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
24069   {
24070     using Type = AndroidHardwareBufferFormatPropertiesANDROID;
24071   };
24072 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
24073 
24074 #ifdef VK_USE_PLATFORM_ANDROID_KHR
24075   struct AndroidHardwareBufferPropertiesANDROID
24076   {
24077     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
24078 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24079     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
24080                                                                  uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
24081       : allocationSize( allocationSize_ )
24082       , memoryTypeBits( memoryTypeBits_ )
24083     {}
24084 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24085     AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24086     {
24087       memcpy( &pNext, &rhs.pNext, sizeof( AndroidHardwareBufferPropertiesANDROID ) - offsetof( AndroidHardwareBufferPropertiesANDROID, pNext ) );
24088       return *this;
24089     }
24090 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24091     AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24092     {
24093       *this = rhs;
24094     }
24095 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24096     AndroidHardwareBufferPropertiesANDROID& operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24097     {
24098       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>(&rhs);
24099       return *this;
24100     }
24101 
24102 
operator VkAndroidHardwareBufferPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24103     operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
24104     {
24105       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
24106     }
24107 
operator VkAndroidHardwareBufferPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24108     operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
24109     {
24110       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
24111     }
24112 
24113 
24114 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24115     auto operator<=>( AndroidHardwareBufferPropertiesANDROID const& ) const = default;
24116 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24117     bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
24118     {
24119       return ( sType == rhs.sType )
24120           && ( pNext == rhs.pNext )
24121           && ( allocationSize == rhs.allocationSize )
24122           && ( memoryTypeBits == rhs.memoryTypeBits );
24123     }
24124 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID24125     bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
24126     {
24127       return !operator==( rhs );
24128     }
24129 #endif
24130 
24131 
24132 
24133   public:
24134     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
24135     void* pNext = {};
24136     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
24137     uint32_t memoryTypeBits = {};
24138 
24139   };
24140   static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
24141   static_assert( std::is_standard_layout<AndroidHardwareBufferPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
24142 
24143   template <>
24144   struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
24145   {
24146     using Type = AndroidHardwareBufferPropertiesANDROID;
24147   };
24148 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
24149 
24150 #ifdef VK_USE_PLATFORM_ANDROID_KHR
24151   struct AndroidHardwareBufferUsageANDROID
24152   {
24153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
24154 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24155     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( uint64_t androidHardwareBufferUsage_ = {} ) VULKAN_HPP_NOEXCEPT
24156       : androidHardwareBufferUsage( androidHardwareBufferUsage_ )
24157     {}
24158 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24159     AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24160     {
24161       memcpy( &pNext, &rhs.pNext, sizeof( AndroidHardwareBufferUsageANDROID ) - offsetof( AndroidHardwareBufferUsageANDROID, pNext ) );
24162       return *this;
24163     }
24164 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24165     AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24166     {
24167       *this = rhs;
24168     }
24169 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24170     AndroidHardwareBufferUsageANDROID& operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
24171     {
24172       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>(&rhs);
24173       return *this;
24174     }
24175 
24176 
operator VkAndroidHardwareBufferUsageANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24177     operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT
24178     {
24179       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
24180     }
24181 
operator VkAndroidHardwareBufferUsageANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24182     operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
24183     {
24184       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
24185     }
24186 
24187 
24188 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24189     auto operator<=>( AndroidHardwareBufferUsageANDROID const& ) const = default;
24190 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24191     bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
24192     {
24193       return ( sType == rhs.sType )
24194           && ( pNext == rhs.pNext )
24195           && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
24196     }
24197 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID24198     bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
24199     {
24200       return !operator==( rhs );
24201     }
24202 #endif
24203 
24204 
24205 
24206   public:
24207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
24208     void* pNext = {};
24209     uint64_t androidHardwareBufferUsage = {};
24210 
24211   };
24212   static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
24213   static_assert( std::is_standard_layout<AndroidHardwareBufferUsageANDROID>::value, "struct wrapper is not a standard layout!" );
24214 
24215   template <>
24216   struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
24217   {
24218     using Type = AndroidHardwareBufferUsageANDROID;
24219   };
24220 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
24221 
24222 #ifdef VK_USE_PLATFORM_ANDROID_KHR
24223   struct AndroidSurfaceCreateInfoKHR
24224   {
24225     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
24226 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24227     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {},
24228                                                       struct ANativeWindow* window_ = {} ) VULKAN_HPP_NOEXCEPT
24229       : flags( flags_ )
24230       , window( window_ )
24231     {}
24232 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24233     AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
24234     {
24235       memcpy( &pNext, &rhs.pNext, sizeof( AndroidSurfaceCreateInfoKHR ) - offsetof( AndroidSurfaceCreateInfoKHR, pNext ) );
24236       return *this;
24237     }
24238 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24239     AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
24240     {
24241       *this = rhs;
24242     }
24243 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24244     AndroidSurfaceCreateInfoKHR& operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
24245     {
24246       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>(&rhs);
24247       return *this;
24248     }
24249 
setPNextVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24250     AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24251     {
24252       pNext = pNext_;
24253       return *this;
24254     }
24255 
setFlagsVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24256     AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
24257     {
24258       flags = flags_;
24259       return *this;
24260     }
24261 
setWindowVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24262     AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT
24263     {
24264       window = window_;
24265       return *this;
24266     }
24267 
24268 
operator VkAndroidSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24269     operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
24270     {
24271       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
24272     }
24273 
operator VkAndroidSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24274     operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
24275     {
24276       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
24277     }
24278 
24279 
24280 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24281     auto operator<=>( AndroidSurfaceCreateInfoKHR const& ) const = default;
24282 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24283     bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
24284     {
24285       return ( sType == rhs.sType )
24286           && ( pNext == rhs.pNext )
24287           && ( flags == rhs.flags )
24288           && ( window == rhs.window );
24289     }
24290 
operator !=VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR24291     bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
24292     {
24293       return !operator==( rhs );
24294     }
24295 #endif
24296 
24297 
24298 
24299   public:
24300     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
24301     const void* pNext = {};
24302     VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
24303     struct ANativeWindow* window = {};
24304 
24305   };
24306   static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
24307   static_assert( std::is_standard_layout<AndroidSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
24308 
24309   template <>
24310   struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
24311   {
24312     using Type = AndroidSurfaceCreateInfoKHR;
24313   };
24314 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
24315 
24316   struct ApplicationInfo
24317   {
24318     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
24319 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo24320     VULKAN_HPP_CONSTEXPR ApplicationInfo( const char* pApplicationName_ = {},
24321                                           uint32_t applicationVersion_ = {},
24322                                           const char* pEngineName_ = {},
24323                                           uint32_t engineVersion_ = {},
24324                                           uint32_t apiVersion_ = {} ) VULKAN_HPP_NOEXCEPT
24325       : pApplicationName( pApplicationName_ )
24326       , applicationVersion( applicationVersion_ )
24327       , pEngineName( pEngineName_ )
24328       , engineVersion( engineVersion_ )
24329       , apiVersion( apiVersion_ )
24330     {}
24331 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo24332     ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24333     {
24334       memcpy( &pNext, &rhs.pNext, sizeof( ApplicationInfo ) - offsetof( ApplicationInfo, pNext ) );
24335       return *this;
24336     }
24337 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo24338     ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24339     {
24340       *this = rhs;
24341     }
24342 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo24343     ApplicationInfo& operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24344     {
24345       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>(&rhs);
24346       return *this;
24347     }
24348 
setPNextVULKAN_HPP_NAMESPACE::ApplicationInfo24349     ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24350     {
24351       pNext = pNext_;
24352       return *this;
24353     }
24354 
setPApplicationNameVULKAN_HPP_NAMESPACE::ApplicationInfo24355     ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT
24356     {
24357       pApplicationName = pApplicationName_;
24358       return *this;
24359     }
24360 
setApplicationVersionVULKAN_HPP_NAMESPACE::ApplicationInfo24361     ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
24362     {
24363       applicationVersion = applicationVersion_;
24364       return *this;
24365     }
24366 
setPEngineNameVULKAN_HPP_NAMESPACE::ApplicationInfo24367     ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT
24368     {
24369       pEngineName = pEngineName_;
24370       return *this;
24371     }
24372 
setEngineVersionVULKAN_HPP_NAMESPACE::ApplicationInfo24373     ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
24374     {
24375       engineVersion = engineVersion_;
24376       return *this;
24377     }
24378 
setApiVersionVULKAN_HPP_NAMESPACE::ApplicationInfo24379     ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
24380     {
24381       apiVersion = apiVersion_;
24382       return *this;
24383     }
24384 
24385 
operator VkApplicationInfo const&VULKAN_HPP_NAMESPACE::ApplicationInfo24386     operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT
24387     {
24388       return *reinterpret_cast<const VkApplicationInfo*>( this );
24389     }
24390 
operator VkApplicationInfo&VULKAN_HPP_NAMESPACE::ApplicationInfo24391     operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
24392     {
24393       return *reinterpret_cast<VkApplicationInfo*>( this );
24394     }
24395 
24396 
24397 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24398     auto operator<=>( ApplicationInfo const& ) const = default;
24399 #else
operator ==VULKAN_HPP_NAMESPACE::ApplicationInfo24400     bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24401     {
24402       return ( sType == rhs.sType )
24403           && ( pNext == rhs.pNext )
24404           && ( pApplicationName == rhs.pApplicationName )
24405           && ( applicationVersion == rhs.applicationVersion )
24406           && ( pEngineName == rhs.pEngineName )
24407           && ( engineVersion == rhs.engineVersion )
24408           && ( apiVersion == rhs.apiVersion );
24409     }
24410 
operator !=VULKAN_HPP_NAMESPACE::ApplicationInfo24411     bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24412     {
24413       return !operator==( rhs );
24414     }
24415 #endif
24416 
24417 
24418 
24419   public:
24420     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
24421     const void* pNext = {};
24422     const char* pApplicationName = {};
24423     uint32_t applicationVersion = {};
24424     const char* pEngineName = {};
24425     uint32_t engineVersion = {};
24426     uint32_t apiVersion = {};
24427 
24428   };
24429   static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" );
24430   static_assert( std::is_standard_layout<ApplicationInfo>::value, "struct wrapper is not a standard layout!" );
24431 
24432   template <>
24433   struct CppType<StructureType, StructureType::eApplicationInfo>
24434   {
24435     using Type = ApplicationInfo;
24436   };
24437 
24438   struct AttachmentDescription
24439   {
24440 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription24441     VULKAN_HPP_CONSTEXPR AttachmentDescription( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {},
24442                                                 VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
24443                                                 VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
24444                                                 VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
24445                                                 VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
24446                                                 VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
24447                                                 VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
24448                                                 VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
24449                                                 VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
24450       : flags( flags_ )
24451       , format( format_ )
24452       , samples( samples_ )
24453       , loadOp( loadOp_ )
24454       , storeOp( storeOp_ )
24455       , stencilLoadOp( stencilLoadOp_ )
24456       , stencilStoreOp( stencilStoreOp_ )
24457       , initialLayout( initialLayout_ )
24458       , finalLayout( finalLayout_ )
24459     {}
24460 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription24461     AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
24462     {
24463       *this = rhs;
24464     }
24465 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription24466     AttachmentDescription& operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
24467     {
24468       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>(&rhs);
24469       return *this;
24470     }
24471 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription24472     AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
24473     {
24474       flags = flags_;
24475       return *this;
24476     }
24477 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription24478     AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
24479     {
24480       format = format_;
24481       return *this;
24482     }
24483 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription24484     AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
24485     {
24486       samples = samples_;
24487       return *this;
24488     }
24489 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription24490     AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
24491     {
24492       loadOp = loadOp_;
24493       return *this;
24494     }
24495 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription24496     AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
24497     {
24498       storeOp = storeOp_;
24499       return *this;
24500     }
24501 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription24502     AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
24503     {
24504       stencilLoadOp = stencilLoadOp_;
24505       return *this;
24506     }
24507 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription24508     AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
24509     {
24510       stencilStoreOp = stencilStoreOp_;
24511       return *this;
24512     }
24513 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription24514     AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
24515     {
24516       initialLayout = initialLayout_;
24517       return *this;
24518     }
24519 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription24520     AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
24521     {
24522       finalLayout = finalLayout_;
24523       return *this;
24524     }
24525 
24526 
operator VkAttachmentDescription const&VULKAN_HPP_NAMESPACE::AttachmentDescription24527     operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT
24528     {
24529       return *reinterpret_cast<const VkAttachmentDescription*>( this );
24530     }
24531 
operator VkAttachmentDescription&VULKAN_HPP_NAMESPACE::AttachmentDescription24532     operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
24533     {
24534       return *reinterpret_cast<VkAttachmentDescription*>( this );
24535     }
24536 
24537 
24538 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24539     auto operator<=>( AttachmentDescription const& ) const = default;
24540 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription24541     bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
24542     {
24543       return ( flags == rhs.flags )
24544           && ( format == rhs.format )
24545           && ( samples == rhs.samples )
24546           && ( loadOp == rhs.loadOp )
24547           && ( storeOp == rhs.storeOp )
24548           && ( stencilLoadOp == rhs.stencilLoadOp )
24549           && ( stencilStoreOp == rhs.stencilStoreOp )
24550           && ( initialLayout == rhs.initialLayout )
24551           && ( finalLayout == rhs.finalLayout );
24552     }
24553 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription24554     bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
24555     {
24556       return !operator==( rhs );
24557     }
24558 #endif
24559 
24560 
24561 
24562   public:
24563     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
24564     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
24565     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
24566     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
24567     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
24568     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
24569     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
24570     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24571     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24572 
24573   };
24574   static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" );
24575   static_assert( std::is_standard_layout<AttachmentDescription>::value, "struct wrapper is not a standard layout!" );
24576 
24577   struct AttachmentDescription2
24578   {
24579     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
24580 
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription224581     VULKAN_HPP_CONSTEXPR AttachmentDescription2( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {},
24582                                                  VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
24583                                                  VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
24584                                                  VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
24585                                                  VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
24586                                                  VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
24587                                                  VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
24588                                                  VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
24589                                                  VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
24590       : flags( flags_ )
24591       , format( format_ )
24592       , samples( samples_ )
24593       , loadOp( loadOp_ )
24594       , storeOp( storeOp_ )
24595       , stencilLoadOp( stencilLoadOp_ )
24596       , stencilStoreOp( stencilStoreOp_ )
24597       , initialLayout( initialLayout_ )
24598       , finalLayout( finalLayout_ )
24599     {}
24600 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription224601     AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
24602     {
24603       memcpy( &pNext, &rhs.pNext, sizeof( AttachmentDescription2 ) - offsetof( AttachmentDescription2, pNext ) );
24604       return *this;
24605     }
24606 
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription224607     AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
24608     {
24609       *this = rhs;
24610     }
24611 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription224612     AttachmentDescription2& operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
24613     {
24614       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>(&rhs);
24615       return *this;
24616     }
24617 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescription224618     AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24619     {
24620       pNext = pNext_;
24621       return *this;
24622     }
24623 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription224624     AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
24625     {
24626       flags = flags_;
24627       return *this;
24628     }
24629 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription224630     AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
24631     {
24632       format = format_;
24633       return *this;
24634     }
24635 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription224636     AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
24637     {
24638       samples = samples_;
24639       return *this;
24640     }
24641 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription224642     AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
24643     {
24644       loadOp = loadOp_;
24645       return *this;
24646     }
24647 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription224648     AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
24649     {
24650       storeOp = storeOp_;
24651       return *this;
24652     }
24653 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription224654     AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
24655     {
24656       stencilLoadOp = stencilLoadOp_;
24657       return *this;
24658     }
24659 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription224660     AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
24661     {
24662       stencilStoreOp = stencilStoreOp_;
24663       return *this;
24664     }
24665 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription224666     AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
24667     {
24668       initialLayout = initialLayout_;
24669       return *this;
24670     }
24671 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription224672     AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
24673     {
24674       finalLayout = finalLayout_;
24675       return *this;
24676     }
24677 
24678 
operator VkAttachmentDescription2 const&VULKAN_HPP_NAMESPACE::AttachmentDescription224679     operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT
24680     {
24681       return *reinterpret_cast<const VkAttachmentDescription2*>( this );
24682     }
24683 
operator VkAttachmentDescription2&VULKAN_HPP_NAMESPACE::AttachmentDescription224684     operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
24685     {
24686       return *reinterpret_cast<VkAttachmentDescription2*>( this );
24687     }
24688 
24689 
24690 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24691     auto operator<=>( AttachmentDescription2 const& ) const = default;
24692 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription224693     bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
24694     {
24695       return ( sType == rhs.sType )
24696           && ( pNext == rhs.pNext )
24697           && ( flags == rhs.flags )
24698           && ( format == rhs.format )
24699           && ( samples == rhs.samples )
24700           && ( loadOp == rhs.loadOp )
24701           && ( storeOp == rhs.storeOp )
24702           && ( stencilLoadOp == rhs.stencilLoadOp )
24703           && ( stencilStoreOp == rhs.stencilStoreOp )
24704           && ( initialLayout == rhs.initialLayout )
24705           && ( finalLayout == rhs.finalLayout );
24706     }
24707 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription224708     bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
24709     {
24710       return !operator==( rhs );
24711     }
24712 #endif
24713 
24714 
24715 
24716   public:
24717     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
24718     const void* pNext = {};
24719     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
24720     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
24721     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
24722     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
24723     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
24724     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
24725     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
24726     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24727     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24728 
24729   };
24730   static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" );
24731   static_assert( std::is_standard_layout<AttachmentDescription2>::value, "struct wrapper is not a standard layout!" );
24732 
24733   template <>
24734   struct CppType<StructureType, StructureType::eAttachmentDescription2>
24735   {
24736     using Type = AttachmentDescription2;
24737   };
24738 
24739   struct AttachmentDescriptionStencilLayout
24740   {
24741     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
24742 
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24743     VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
24744                                                              VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
24745       : stencilInitialLayout( stencilInitialLayout_ )
24746       , stencilFinalLayout( stencilFinalLayout_ )
24747     {}
24748 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24749     AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
24750     {
24751       memcpy( &pNext, &rhs.pNext, sizeof( AttachmentDescriptionStencilLayout ) - offsetof( AttachmentDescriptionStencilLayout, pNext ) );
24752       return *this;
24753     }
24754 
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24755     AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
24756     {
24757       *this = rhs;
24758     }
24759 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24760     AttachmentDescriptionStencilLayout& operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
24761     {
24762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>(&rhs);
24763       return *this;
24764     }
24765 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24766     AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
24767     {
24768       pNext = pNext_;
24769       return *this;
24770     }
24771 
setStencilInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24772     AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
24773     {
24774       stencilInitialLayout = stencilInitialLayout_;
24775       return *this;
24776     }
24777 
setStencilFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24778     AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
24779     {
24780       stencilFinalLayout = stencilFinalLayout_;
24781       return *this;
24782     }
24783 
24784 
operator VkAttachmentDescriptionStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24785     operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT
24786     {
24787       return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>( this );
24788     }
24789 
operator VkAttachmentDescriptionStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24790     operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
24791     {
24792       return *reinterpret_cast<VkAttachmentDescriptionStencilLayout*>( this );
24793     }
24794 
24795 
24796 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24797     auto operator<=>( AttachmentDescriptionStencilLayout const& ) const = default;
24798 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24799     bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
24800     {
24801       return ( sType == rhs.sType )
24802           && ( pNext == rhs.pNext )
24803           && ( stencilInitialLayout == rhs.stencilInitialLayout )
24804           && ( stencilFinalLayout == rhs.stencilFinalLayout );
24805     }
24806 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout24807     bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
24808     {
24809       return !operator==( rhs );
24810     }
24811 #endif
24812 
24813 
24814 
24815   public:
24816     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
24817     void* pNext = {};
24818     VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24819     VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24820 
24821   };
24822   static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" );
24823   static_assert( std::is_standard_layout<AttachmentDescriptionStencilLayout>::value, "struct wrapper is not a standard layout!" );
24824 
24825   template <>
24826   struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
24827   {
24828     using Type = AttachmentDescriptionStencilLayout;
24829   };
24830 
24831   struct AttachmentReference
24832   {
24833 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference24834     VULKAN_HPP_CONSTEXPR AttachmentReference( uint32_t attachment_ = {},
24835                                               VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
24836       : attachment( attachment_ )
24837       , layout( layout_ )
24838     {}
24839 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference24840     AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
24841     {
24842       *this = rhs;
24843     }
24844 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference24845     AttachmentReference& operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
24846     {
24847       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>(&rhs);
24848       return *this;
24849     }
24850 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference24851     AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
24852     {
24853       attachment = attachment_;
24854       return *this;
24855     }
24856 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference24857     AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
24858     {
24859       layout = layout_;
24860       return *this;
24861     }
24862 
24863 
operator VkAttachmentReference const&VULKAN_HPP_NAMESPACE::AttachmentReference24864     operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT
24865     {
24866       return *reinterpret_cast<const VkAttachmentReference*>( this );
24867     }
24868 
operator VkAttachmentReference&VULKAN_HPP_NAMESPACE::AttachmentReference24869     operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
24870     {
24871       return *reinterpret_cast<VkAttachmentReference*>( this );
24872     }
24873 
24874 
24875 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24876     auto operator<=>( AttachmentReference const& ) const = default;
24877 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference24878     bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
24879     {
24880       return ( attachment == rhs.attachment )
24881           && ( layout == rhs.layout );
24882     }
24883 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference24884     bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
24885     {
24886       return !operator==( rhs );
24887     }
24888 #endif
24889 
24890 
24891 
24892   public:
24893     uint32_t attachment = {};
24894     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24895 
24896   };
24897   static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" );
24898   static_assert( std::is_standard_layout<AttachmentReference>::value, "struct wrapper is not a standard layout!" );
24899 
24900   struct AttachmentReference2
24901   {
24902     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
24903 
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference224904     VULKAN_HPP_CONSTEXPR AttachmentReference2( uint32_t attachment_ = {},
24905                                                VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
24906                                                VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT
24907       : attachment( attachment_ )
24908       , layout( layout_ )
24909       , aspectMask( aspectMask_ )
24910     {}
24911 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference224912     AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
24913     {
24914       memcpy( &pNext, &rhs.pNext, sizeof( AttachmentReference2 ) - offsetof( AttachmentReference2, pNext ) );
24915       return *this;
24916     }
24917 
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference224918     AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
24919     {
24920       *this = rhs;
24921     }
24922 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference224923     AttachmentReference2& operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
24924     {
24925       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>(&rhs);
24926       return *this;
24927     }
24928 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReference224929     AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24930     {
24931       pNext = pNext_;
24932       return *this;
24933     }
24934 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference224935     AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
24936     {
24937       attachment = attachment_;
24938       return *this;
24939     }
24940 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference224941     AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
24942     {
24943       layout = layout_;
24944       return *this;
24945     }
24946 
setAspectMaskVULKAN_HPP_NAMESPACE::AttachmentReference224947     AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
24948     {
24949       aspectMask = aspectMask_;
24950       return *this;
24951     }
24952 
24953 
operator VkAttachmentReference2 const&VULKAN_HPP_NAMESPACE::AttachmentReference224954     operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT
24955     {
24956       return *reinterpret_cast<const VkAttachmentReference2*>( this );
24957     }
24958 
operator VkAttachmentReference2&VULKAN_HPP_NAMESPACE::AttachmentReference224959     operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
24960     {
24961       return *reinterpret_cast<VkAttachmentReference2*>( this );
24962     }
24963 
24964 
24965 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24966     auto operator<=>( AttachmentReference2 const& ) const = default;
24967 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference224968     bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
24969     {
24970       return ( sType == rhs.sType )
24971           && ( pNext == rhs.pNext )
24972           && ( attachment == rhs.attachment )
24973           && ( layout == rhs.layout )
24974           && ( aspectMask == rhs.aspectMask );
24975     }
24976 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference224977     bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
24978     {
24979       return !operator==( rhs );
24980     }
24981 #endif
24982 
24983 
24984 
24985   public:
24986     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
24987     const void* pNext = {};
24988     uint32_t attachment = {};
24989     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
24990     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
24991 
24992   };
24993   static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" );
24994   static_assert( std::is_standard_layout<AttachmentReference2>::value, "struct wrapper is not a standard layout!" );
24995 
24996   template <>
24997   struct CppType<StructureType, StructureType::eAttachmentReference2>
24998   {
24999     using Type = AttachmentReference2;
25000   };
25001 
25002   struct AttachmentReferenceStencilLayout
25003   {
25004     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
25005 
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25006     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
25007       : stencilLayout( stencilLayout_ )
25008     {}
25009 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25010     AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
25011     {
25012       memcpy( &pNext, &rhs.pNext, sizeof( AttachmentReferenceStencilLayout ) - offsetof( AttachmentReferenceStencilLayout, pNext ) );
25013       return *this;
25014     }
25015 
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25016     AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
25017     {
25018       *this = rhs;
25019     }
25020 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25021     AttachmentReferenceStencilLayout& operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
25022     {
25023       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>(&rhs);
25024       return *this;
25025     }
25026 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25027     AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
25028     {
25029       pNext = pNext_;
25030       return *this;
25031     }
25032 
setStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25033     AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
25034     {
25035       stencilLayout = stencilLayout_;
25036       return *this;
25037     }
25038 
25039 
operator VkAttachmentReferenceStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25040     operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT
25041     {
25042       return *reinterpret_cast<const VkAttachmentReferenceStencilLayout*>( this );
25043     }
25044 
operator VkAttachmentReferenceStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25045     operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
25046     {
25047       return *reinterpret_cast<VkAttachmentReferenceStencilLayout*>( this );
25048     }
25049 
25050 
25051 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25052     auto operator<=>( AttachmentReferenceStencilLayout const& ) const = default;
25053 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25054     bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
25055     {
25056       return ( sType == rhs.sType )
25057           && ( pNext == rhs.pNext )
25058           && ( stencilLayout == rhs.stencilLayout );
25059     }
25060 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout25061     bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
25062     {
25063       return !operator==( rhs );
25064     }
25065 #endif
25066 
25067 
25068 
25069   public:
25070     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
25071     void* pNext = {};
25072     VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
25073 
25074   };
25075   static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" );
25076   static_assert( std::is_standard_layout<AttachmentReferenceStencilLayout>::value, "struct wrapper is not a standard layout!" );
25077 
25078   template <>
25079   struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
25080   {
25081     using Type = AttachmentReferenceStencilLayout;
25082   };
25083 
25084   struct Extent2D
25085   {
25086 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D25087     VULKAN_HPP_CONSTEXPR Extent2D( uint32_t width_ = {},
25088                                    uint32_t height_ = {} ) VULKAN_HPP_NOEXCEPT
25089       : width( width_ )
25090       , height( height_ )
25091     {}
25092 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D25093     Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
25094     {
25095       *this = rhs;
25096     }
25097 
operator =VULKAN_HPP_NAMESPACE::Extent2D25098     Extent2D& operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
25099     {
25100       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>(&rhs);
25101       return *this;
25102     }
25103 
setWidthVULKAN_HPP_NAMESPACE::Extent2D25104     Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
25105     {
25106       width = width_;
25107       return *this;
25108     }
25109 
setHeightVULKAN_HPP_NAMESPACE::Extent2D25110     Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
25111     {
25112       height = height_;
25113       return *this;
25114     }
25115 
25116 
operator VkExtent2D const&VULKAN_HPP_NAMESPACE::Extent2D25117     operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT
25118     {
25119       return *reinterpret_cast<const VkExtent2D*>( this );
25120     }
25121 
operator VkExtent2D&VULKAN_HPP_NAMESPACE::Extent2D25122     operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
25123     {
25124       return *reinterpret_cast<VkExtent2D*>( this );
25125     }
25126 
25127 
25128 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25129     auto operator<=>( Extent2D const& ) const = default;
25130 #else
operator ==VULKAN_HPP_NAMESPACE::Extent2D25131     bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
25132     {
25133       return ( width == rhs.width )
25134           && ( height == rhs.height );
25135     }
25136 
operator !=VULKAN_HPP_NAMESPACE::Extent2D25137     bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
25138     {
25139       return !operator==( rhs );
25140     }
25141 #endif
25142 
25143 
25144 
25145   public:
25146     uint32_t width = {};
25147     uint32_t height = {};
25148 
25149   };
25150   static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" );
25151   static_assert( std::is_standard_layout<Extent2D>::value, "struct wrapper is not a standard layout!" );
25152 
25153   struct SampleLocationEXT
25154   {
25155 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT25156     VULKAN_HPP_CONSTEXPR SampleLocationEXT( float x_ = {},
25157                                             float y_ = {} ) VULKAN_HPP_NOEXCEPT
25158       : x( x_ )
25159       , y( y_ )
25160     {}
25161 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT25162     SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25163     {
25164       *this = rhs;
25165     }
25166 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT25167     SampleLocationEXT& operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25168     {
25169       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>(&rhs);
25170       return *this;
25171     }
25172 
setXVULKAN_HPP_NAMESPACE::SampleLocationEXT25173     SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
25174     {
25175       x = x_;
25176       return *this;
25177     }
25178 
setYVULKAN_HPP_NAMESPACE::SampleLocationEXT25179     SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
25180     {
25181       y = y_;
25182       return *this;
25183     }
25184 
25185 
operator VkSampleLocationEXT const&VULKAN_HPP_NAMESPACE::SampleLocationEXT25186     operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT
25187     {
25188       return *reinterpret_cast<const VkSampleLocationEXT*>( this );
25189     }
25190 
operator VkSampleLocationEXT&VULKAN_HPP_NAMESPACE::SampleLocationEXT25191     operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
25192     {
25193       return *reinterpret_cast<VkSampleLocationEXT*>( this );
25194     }
25195 
25196 
25197 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25198     auto operator<=>( SampleLocationEXT const& ) const = default;
25199 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationEXT25200     bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25201     {
25202       return ( x == rhs.x )
25203           && ( y == rhs.y );
25204     }
25205 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationEXT25206     bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25207     {
25208       return !operator==( rhs );
25209     }
25210 #endif
25211 
25212 
25213 
25214   public:
25215     float x = {};
25216     float y = {};
25217 
25218   };
25219   static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
25220   static_assert( std::is_standard_layout<SampleLocationEXT>::value, "struct wrapper is not a standard layout!" );
25221 
25222   struct SampleLocationsInfoEXT
25223   {
25224     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
25225 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25226     VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
25227                                                  VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {},
25228                                                  uint32_t sampleLocationsCount_ = {},
25229                                                  const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT
25230       : sampleLocationsPerPixel( sampleLocationsPerPixel_ )
25231       , sampleLocationGridSize( sampleLocationGridSize_ )
25232       , sampleLocationsCount( sampleLocationsCount_ )
25233       , pSampleLocations( pSampleLocations_ )
25234     {}
25235 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25236     SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25237     {
25238       memcpy( &pNext, &rhs.pNext, sizeof( SampleLocationsInfoEXT ) - offsetof( SampleLocationsInfoEXT, pNext ) );
25239       return *this;
25240     }
25241 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25242     SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25243     {
25244       *this = rhs;
25245     }
25246 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25247     SampleLocationsInfoEXT& operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25248     {
25249       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>(&rhs);
25250       return *this;
25251     }
25252 
setPNextVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25253     SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25254     {
25255       pNext = pNext_;
25256       return *this;
25257     }
25258 
setSampleLocationsPerPixelVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25259     SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
25260     {
25261       sampleLocationsPerPixel = sampleLocationsPerPixel_;
25262       return *this;
25263     }
25264 
setSampleLocationGridSizeVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25265     SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
25266     {
25267       sampleLocationGridSize = sampleLocationGridSize_;
25268       return *this;
25269     }
25270 
setSampleLocationsCountVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25271     SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
25272     {
25273       sampleLocationsCount = sampleLocationsCount_;
25274       return *this;
25275     }
25276 
setPSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25277     SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
25278     {
25279       pSampleLocations = pSampleLocations_;
25280       return *this;
25281     }
25282 
25283 
operator VkSampleLocationsInfoEXT const&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25284     operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT
25285     {
25286       return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
25287     }
25288 
operator VkSampleLocationsInfoEXT&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25289     operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
25290     {
25291       return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
25292     }
25293 
25294 
25295 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25296     auto operator<=>( SampleLocationsInfoEXT const& ) const = default;
25297 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25298     bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25299     {
25300       return ( sType == rhs.sType )
25301           && ( pNext == rhs.pNext )
25302           && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
25303           && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
25304           && ( sampleLocationsCount == rhs.sampleLocationsCount )
25305           && ( pSampleLocations == rhs.pSampleLocations );
25306     }
25307 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT25308     bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25309     {
25310       return !operator==( rhs );
25311     }
25312 #endif
25313 
25314 
25315 
25316   public:
25317     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
25318     const void* pNext = {};
25319     VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
25320     VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
25321     uint32_t sampleLocationsCount = {};
25322     const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {};
25323 
25324   };
25325   static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" );
25326   static_assert( std::is_standard_layout<SampleLocationsInfoEXT>::value, "struct wrapper is not a standard layout!" );
25327 
25328   template <>
25329   struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
25330   {
25331     using Type = SampleLocationsInfoEXT;
25332   };
25333 
25334   struct AttachmentSampleLocationsEXT
25335   {
25336 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25337     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( uint32_t attachmentIndex_ = {},
25338                                                        VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
25339       : attachmentIndex( attachmentIndex_ )
25340       , sampleLocationsInfo( sampleLocationsInfo_ )
25341     {}
25342 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25343     AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25344     {
25345       *this = rhs;
25346     }
25347 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25348     AttachmentSampleLocationsEXT& operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25349     {
25350       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>(&rhs);
25351       return *this;
25352     }
25353 
setAttachmentIndexVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25354     AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
25355     {
25356       attachmentIndex = attachmentIndex_;
25357       return *this;
25358     }
25359 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25360     AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
25361     {
25362       sampleLocationsInfo = sampleLocationsInfo_;
25363       return *this;
25364     }
25365 
25366 
operator VkAttachmentSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25367     operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
25368     {
25369       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
25370     }
25371 
operator VkAttachmentSampleLocationsEXT&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25372     operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
25373     {
25374       return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
25375     }
25376 
25377 
25378 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25379     auto operator<=>( AttachmentSampleLocationsEXT const& ) const = default;
25380 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25381     bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25382     {
25383       return ( attachmentIndex == rhs.attachmentIndex )
25384           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
25385     }
25386 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT25387     bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25388     {
25389       return !operator==( rhs );
25390     }
25391 #endif
25392 
25393 
25394 
25395   public:
25396     uint32_t attachmentIndex = {};
25397     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
25398 
25399   };
25400   static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" );
25401   static_assert( std::is_standard_layout<AttachmentSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
25402 
25403   struct BaseInStructure
25404   {
25405 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure25406     BaseInStructure() VULKAN_HPP_NOEXCEPT
25407     {}
25408 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure25409     BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
25410     {
25411       *this = rhs;
25412     }
25413 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure25414     BaseInStructure& operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
25415     {
25416       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>(&rhs);
25417       return *this;
25418     }
25419 
setPNextVULKAN_HPP_NAMESPACE::BaseInStructure25420     BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
25421     {
25422       pNext = pNext_;
25423       return *this;
25424     }
25425 
25426 
operator VkBaseInStructure const&VULKAN_HPP_NAMESPACE::BaseInStructure25427     operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT
25428     {
25429       return *reinterpret_cast<const VkBaseInStructure*>( this );
25430     }
25431 
operator VkBaseInStructure&VULKAN_HPP_NAMESPACE::BaseInStructure25432     operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
25433     {
25434       return *reinterpret_cast<VkBaseInStructure*>( this );
25435     }
25436 
25437 
25438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25439     auto operator<=>( BaseInStructure const& ) const = default;
25440 #else
operator ==VULKAN_HPP_NAMESPACE::BaseInStructure25441     bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
25442     {
25443       return ( sType == rhs.sType )
25444           && ( pNext == rhs.pNext );
25445     }
25446 
operator !=VULKAN_HPP_NAMESPACE::BaseInStructure25447     bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
25448     {
25449       return !operator==( rhs );
25450     }
25451 #endif
25452 
25453 
25454 
25455   public:
25456     VULKAN_HPP_NAMESPACE::StructureType sType = {};
25457     const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {};
25458 
25459   };
25460   static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" );
25461   static_assert( std::is_standard_layout<BaseInStructure>::value, "struct wrapper is not a standard layout!" );
25462 
25463   struct BaseOutStructure
25464   {
25465 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure25466     BaseOutStructure() VULKAN_HPP_NOEXCEPT
25467     {}
25468 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure25469     BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
25470     {
25471       *this = rhs;
25472     }
25473 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure25474     BaseOutStructure& operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
25475     {
25476       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>(&rhs);
25477       return *this;
25478     }
25479 
setPNextVULKAN_HPP_NAMESPACE::BaseOutStructure25480     BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
25481     {
25482       pNext = pNext_;
25483       return *this;
25484     }
25485 
25486 
operator VkBaseOutStructure const&VULKAN_HPP_NAMESPACE::BaseOutStructure25487     operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT
25488     {
25489       return *reinterpret_cast<const VkBaseOutStructure*>( this );
25490     }
25491 
operator VkBaseOutStructure&VULKAN_HPP_NAMESPACE::BaseOutStructure25492     operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
25493     {
25494       return *reinterpret_cast<VkBaseOutStructure*>( this );
25495     }
25496 
25497 
25498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25499     auto operator<=>( BaseOutStructure const& ) const = default;
25500 #else
operator ==VULKAN_HPP_NAMESPACE::BaseOutStructure25501     bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
25502     {
25503       return ( sType == rhs.sType )
25504           && ( pNext == rhs.pNext );
25505     }
25506 
operator !=VULKAN_HPP_NAMESPACE::BaseOutStructure25507     bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
25508     {
25509       return !operator==( rhs );
25510     }
25511 #endif
25512 
25513 
25514 
25515   public:
25516     VULKAN_HPP_NAMESPACE::StructureType sType = {};
25517     struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {};
25518 
25519   };
25520   static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" );
25521   static_assert( std::is_standard_layout<BaseOutStructure>::value, "struct wrapper is not a standard layout!" );
25522 
25523   struct BindAccelerationStructureMemoryInfoKHR
25524   {
25525     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
25526 
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25527     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {},
25528                                                                  VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
25529                                                                  VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
25530                                                                  uint32_t deviceIndexCount_ = {},
25531                                                                  const uint32_t* pDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT
25532       : accelerationStructure( accelerationStructure_ )
25533       , memory( memory_ )
25534       , memoryOffset( memoryOffset_ )
25535       , deviceIndexCount( deviceIndexCount_ )
25536       , pDeviceIndices( pDeviceIndices_ )
25537     {}
25538 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25539     BindAccelerationStructureMemoryInfoKHR & operator=( BindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25540     {
25541       memcpy( &pNext, &rhs.pNext, sizeof( BindAccelerationStructureMemoryInfoKHR ) - offsetof( BindAccelerationStructureMemoryInfoKHR, pNext ) );
25542       return *this;
25543     }
25544 
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25545     BindAccelerationStructureMemoryInfoKHR( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25546     {
25547       *this = rhs;
25548     }
25549 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25550     BindAccelerationStructureMemoryInfoKHR& operator=( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25551     {
25552       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR const *>(&rhs);
25553       return *this;
25554     }
25555 
setPNextVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25556     BindAccelerationStructureMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25557     {
25558       pNext = pNext_;
25559       return *this;
25560     }
25561 
setAccelerationStructureVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25562     BindAccelerationStructureMemoryInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
25563     {
25564       accelerationStructure = accelerationStructure_;
25565       return *this;
25566     }
25567 
setMemoryVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25568     BindAccelerationStructureMemoryInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
25569     {
25570       memory = memory_;
25571       return *this;
25572     }
25573 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25574     BindAccelerationStructureMemoryInfoKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
25575     {
25576       memoryOffset = memoryOffset_;
25577       return *this;
25578     }
25579 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25580     BindAccelerationStructureMemoryInfoKHR & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
25581     {
25582       deviceIndexCount = deviceIndexCount_;
25583       return *this;
25584     }
25585 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25586     BindAccelerationStructureMemoryInfoKHR & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
25587     {
25588       pDeviceIndices = pDeviceIndices_;
25589       return *this;
25590     }
25591 
25592 
operator VkBindAccelerationStructureMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25593     operator VkBindAccelerationStructureMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
25594     {
25595       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( this );
25596     }
25597 
operator VkBindAccelerationStructureMemoryInfoKHR&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25598     operator VkBindAccelerationStructureMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
25599     {
25600       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoKHR*>( this );
25601     }
25602 
25603 
25604 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25605     auto operator<=>( BindAccelerationStructureMemoryInfoKHR const& ) const = default;
25606 #else
operator ==VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25607     bool operator==( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25608     {
25609       return ( sType == rhs.sType )
25610           && ( pNext == rhs.pNext )
25611           && ( accelerationStructure == rhs.accelerationStructure )
25612           && ( memory == rhs.memory )
25613           && ( memoryOffset == rhs.memoryOffset )
25614           && ( deviceIndexCount == rhs.deviceIndexCount )
25615           && ( pDeviceIndices == rhs.pDeviceIndices );
25616     }
25617 
operator !=VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR25618     bool operator!=( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25619     {
25620       return !operator==( rhs );
25621     }
25622 #endif
25623 
25624 
25625 
25626   public:
25627     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
25628     const void* pNext = {};
25629     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
25630     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
25631     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
25632     uint32_t deviceIndexCount = {};
25633     const uint32_t* pDeviceIndices = {};
25634 
25635   };
25636   static_assert( sizeof( BindAccelerationStructureMemoryInfoKHR ) == sizeof( VkBindAccelerationStructureMemoryInfoKHR ), "struct and wrapper have different size!" );
25637   static_assert( std::is_standard_layout<BindAccelerationStructureMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
25638 
25639   template <>
25640   struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoKHR>
25641   {
25642     using Type = BindAccelerationStructureMemoryInfoKHR;
25643   };
25644 
25645   struct BindBufferMemoryDeviceGroupInfo
25646   {
25647     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
25648 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25649     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {},
25650                                                           const uint32_t* pDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT
25651       : deviceIndexCount( deviceIndexCount_ )
25652       , pDeviceIndices( pDeviceIndices_ )
25653     {}
25654 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25655     BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25656     {
25657       memcpy( &pNext, &rhs.pNext, sizeof( BindBufferMemoryDeviceGroupInfo ) - offsetof( BindBufferMemoryDeviceGroupInfo, pNext ) );
25658       return *this;
25659     }
25660 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25661     BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25662     {
25663       *this = rhs;
25664     }
25665 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25666     BindBufferMemoryDeviceGroupInfo& operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25667     {
25668       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>(&rhs);
25669       return *this;
25670     }
25671 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25672     BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25673     {
25674       pNext = pNext_;
25675       return *this;
25676     }
25677 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25678     BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
25679     {
25680       deviceIndexCount = deviceIndexCount_;
25681       return *this;
25682     }
25683 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25684     BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
25685     {
25686       pDeviceIndices = pDeviceIndices_;
25687       return *this;
25688     }
25689 
25690 
operator VkBindBufferMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25691     operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
25692     {
25693       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
25694     }
25695 
operator VkBindBufferMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25696     operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
25697     {
25698       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
25699     }
25700 
25701 
25702 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25703     auto operator<=>( BindBufferMemoryDeviceGroupInfo const& ) const = default;
25704 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25705     bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25706     {
25707       return ( sType == rhs.sType )
25708           && ( pNext == rhs.pNext )
25709           && ( deviceIndexCount == rhs.deviceIndexCount )
25710           && ( pDeviceIndices == rhs.pDeviceIndices );
25711     }
25712 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo25713     bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25714     {
25715       return !operator==( rhs );
25716     }
25717 #endif
25718 
25719 
25720 
25721   public:
25722     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
25723     const void* pNext = {};
25724     uint32_t deviceIndexCount = {};
25725     const uint32_t* pDeviceIndices = {};
25726 
25727   };
25728   static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
25729   static_assert( std::is_standard_layout<BindBufferMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
25730 
25731   template <>
25732   struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
25733   {
25734     using Type = BindBufferMemoryDeviceGroupInfo;
25735   };
25736 
25737   struct BindBufferMemoryInfo
25738   {
25739     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
25740 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25741     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
25742                                                VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
25743                                                VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {} ) VULKAN_HPP_NOEXCEPT
25744       : buffer( buffer_ )
25745       , memory( memory_ )
25746       , memoryOffset( memoryOffset_ )
25747     {}
25748 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25749     BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25750     {
25751       memcpy( &pNext, &rhs.pNext, sizeof( BindBufferMemoryInfo ) - offsetof( BindBufferMemoryInfo, pNext ) );
25752       return *this;
25753     }
25754 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25755     BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25756     {
25757       *this = rhs;
25758     }
25759 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25760     BindBufferMemoryInfo& operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25761     {
25762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>(&rhs);
25763       return *this;
25764     }
25765 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25766     BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25767     {
25768       pNext = pNext_;
25769       return *this;
25770     }
25771 
setBufferVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25772     BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
25773     {
25774       buffer = buffer_;
25775       return *this;
25776     }
25777 
setMemoryVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25778     BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
25779     {
25780       memory = memory_;
25781       return *this;
25782     }
25783 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25784     BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
25785     {
25786       memoryOffset = memoryOffset_;
25787       return *this;
25788     }
25789 
25790 
operator VkBindBufferMemoryInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25791     operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
25792     {
25793       return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
25794     }
25795 
operator VkBindBufferMemoryInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25796     operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
25797     {
25798       return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
25799     }
25800 
25801 
25802 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25803     auto operator<=>( BindBufferMemoryInfo const& ) const = default;
25804 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25805     bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25806     {
25807       return ( sType == rhs.sType )
25808           && ( pNext == rhs.pNext )
25809           && ( buffer == rhs.buffer )
25810           && ( memory == rhs.memory )
25811           && ( memoryOffset == rhs.memoryOffset );
25812     }
25813 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo25814     bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25815     {
25816       return !operator==( rhs );
25817     }
25818 #endif
25819 
25820 
25821 
25822   public:
25823     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
25824     const void* pNext = {};
25825     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
25826     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
25827     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
25828 
25829   };
25830   static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" );
25831   static_assert( std::is_standard_layout<BindBufferMemoryInfo>::value, "struct wrapper is not a standard layout!" );
25832 
25833   template <>
25834   struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
25835   {
25836     using Type = BindBufferMemoryInfo;
25837   };
25838 
25839   struct Offset2D
25840   {
25841 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D25842     VULKAN_HPP_CONSTEXPR Offset2D( int32_t x_ = {},
25843                                    int32_t y_ = {} ) VULKAN_HPP_NOEXCEPT
25844       : x( x_ )
25845       , y( y_ )
25846     {}
25847 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D25848     Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
25849     {
25850       *this = rhs;
25851     }
25852 
operator =VULKAN_HPP_NAMESPACE::Offset2D25853     Offset2D& operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
25854     {
25855       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>(&rhs);
25856       return *this;
25857     }
25858 
setXVULKAN_HPP_NAMESPACE::Offset2D25859     Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
25860     {
25861       x = x_;
25862       return *this;
25863     }
25864 
setYVULKAN_HPP_NAMESPACE::Offset2D25865     Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
25866     {
25867       y = y_;
25868       return *this;
25869     }
25870 
25871 
operator VkOffset2D const&VULKAN_HPP_NAMESPACE::Offset2D25872     operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT
25873     {
25874       return *reinterpret_cast<const VkOffset2D*>( this );
25875     }
25876 
operator VkOffset2D&VULKAN_HPP_NAMESPACE::Offset2D25877     operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
25878     {
25879       return *reinterpret_cast<VkOffset2D*>( this );
25880     }
25881 
25882 
25883 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25884     auto operator<=>( Offset2D const& ) const = default;
25885 #else
operator ==VULKAN_HPP_NAMESPACE::Offset2D25886     bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
25887     {
25888       return ( x == rhs.x )
25889           && ( y == rhs.y );
25890     }
25891 
operator !=VULKAN_HPP_NAMESPACE::Offset2D25892     bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
25893     {
25894       return !operator==( rhs );
25895     }
25896 #endif
25897 
25898 
25899 
25900   public:
25901     int32_t x = {};
25902     int32_t y = {};
25903 
25904   };
25905   static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" );
25906   static_assert( std::is_standard_layout<Offset2D>::value, "struct wrapper is not a standard layout!" );
25907 
25908   struct Rect2D
25909   {
25910 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D25911     VULKAN_HPP_CONSTEXPR Rect2D( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {},
25912                                  VULKAN_HPP_NAMESPACE::Extent2D extent_ = {} ) VULKAN_HPP_NOEXCEPT
25913       : offset( offset_ )
25914       , extent( extent_ )
25915     {}
25916 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D25917     Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
25918     {
25919       *this = rhs;
25920     }
25921 
operator =VULKAN_HPP_NAMESPACE::Rect2D25922     Rect2D& operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
25923     {
25924       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>(&rhs);
25925       return *this;
25926     }
25927 
setOffsetVULKAN_HPP_NAMESPACE::Rect2D25928     Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
25929     {
25930       offset = offset_;
25931       return *this;
25932     }
25933 
setExtentVULKAN_HPP_NAMESPACE::Rect2D25934     Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
25935     {
25936       extent = extent_;
25937       return *this;
25938     }
25939 
25940 
operator VkRect2D const&VULKAN_HPP_NAMESPACE::Rect2D25941     operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT
25942     {
25943       return *reinterpret_cast<const VkRect2D*>( this );
25944     }
25945 
operator VkRect2D&VULKAN_HPP_NAMESPACE::Rect2D25946     operator VkRect2D &() VULKAN_HPP_NOEXCEPT
25947     {
25948       return *reinterpret_cast<VkRect2D*>( this );
25949     }
25950 
25951 
25952 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25953     auto operator<=>( Rect2D const& ) const = default;
25954 #else
operator ==VULKAN_HPP_NAMESPACE::Rect2D25955     bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
25956     {
25957       return ( offset == rhs.offset )
25958           && ( extent == rhs.extent );
25959     }
25960 
operator !=VULKAN_HPP_NAMESPACE::Rect2D25961     bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
25962     {
25963       return !operator==( rhs );
25964     }
25965 #endif
25966 
25967 
25968 
25969   public:
25970     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
25971     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
25972 
25973   };
25974   static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" );
25975   static_assert( std::is_standard_layout<Rect2D>::value, "struct wrapper is not a standard layout!" );
25976 
25977   struct BindImageMemoryDeviceGroupInfo
25978   {
25979     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
25980 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo25981     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {},
25982                                                          const uint32_t* pDeviceIndices_ = {},
25983                                                          uint32_t splitInstanceBindRegionCount_ = {},
25984                                                          const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {} ) VULKAN_HPP_NOEXCEPT
25985       : deviceIndexCount( deviceIndexCount_ )
25986       , pDeviceIndices( pDeviceIndices_ )
25987       , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ )
25988       , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
25989     {}
25990 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo25991     BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25992     {
25993       memcpy( &pNext, &rhs.pNext, sizeof( BindImageMemoryDeviceGroupInfo ) - offsetof( BindImageMemoryDeviceGroupInfo, pNext ) );
25994       return *this;
25995     }
25996 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo25997     BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25998     {
25999       *this = rhs;
26000     }
26001 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26002     BindImageMemoryDeviceGroupInfo& operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26003     {
26004       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>(&rhs);
26005       return *this;
26006     }
26007 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26008     BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26009     {
26010       pNext = pNext_;
26011       return *this;
26012     }
26013 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26014     BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
26015     {
26016       deviceIndexCount = deviceIndexCount_;
26017       return *this;
26018     }
26019 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26020     BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
26021     {
26022       pDeviceIndices = pDeviceIndices_;
26023       return *this;
26024     }
26025 
setSplitInstanceBindRegionCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26026     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
26027     {
26028       splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
26029       return *this;
26030     }
26031 
setPSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26032     BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
26033     {
26034       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
26035       return *this;
26036     }
26037 
26038 
operator VkBindImageMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26039     operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
26040     {
26041       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
26042     }
26043 
operator VkBindImageMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26044     operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
26045     {
26046       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
26047     }
26048 
26049 
26050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26051     auto operator<=>( BindImageMemoryDeviceGroupInfo const& ) const = default;
26052 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26053     bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26054     {
26055       return ( sType == rhs.sType )
26056           && ( pNext == rhs.pNext )
26057           && ( deviceIndexCount == rhs.deviceIndexCount )
26058           && ( pDeviceIndices == rhs.pDeviceIndices )
26059           && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
26060           && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
26061     }
26062 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo26063     bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26064     {
26065       return !operator==( rhs );
26066     }
26067 #endif
26068 
26069 
26070 
26071   public:
26072     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
26073     const void* pNext = {};
26074     uint32_t deviceIndexCount = {};
26075     const uint32_t* pDeviceIndices = {};
26076     uint32_t splitInstanceBindRegionCount = {};
26077     const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {};
26078 
26079   };
26080   static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
26081   static_assert( std::is_standard_layout<BindImageMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
26082 
26083   template <>
26084   struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
26085   {
26086     using Type = BindImageMemoryDeviceGroupInfo;
26087   };
26088 
26089   struct BindImageMemoryInfo
26090   {
26091     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
26092 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo26093     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
26094                                               VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
26095                                               VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {} ) VULKAN_HPP_NOEXCEPT
26096       : image( image_ )
26097       , memory( memory_ )
26098       , memoryOffset( memoryOffset_ )
26099     {}
26100 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo26101     BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26102     {
26103       memcpy( &pNext, &rhs.pNext, sizeof( BindImageMemoryInfo ) - offsetof( BindImageMemoryInfo, pNext ) );
26104       return *this;
26105     }
26106 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo26107     BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26108     {
26109       *this = rhs;
26110     }
26111 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo26112     BindImageMemoryInfo& operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26113     {
26114       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>(&rhs);
26115       return *this;
26116     }
26117 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryInfo26118     BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26119     {
26120       pNext = pNext_;
26121       return *this;
26122     }
26123 
setImageVULKAN_HPP_NAMESPACE::BindImageMemoryInfo26124     BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
26125     {
26126       image = image_;
26127       return *this;
26128     }
26129 
setMemoryVULKAN_HPP_NAMESPACE::BindImageMemoryInfo26130     BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
26131     {
26132       memory = memory_;
26133       return *this;
26134     }
26135 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindImageMemoryInfo26136     BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
26137     {
26138       memoryOffset = memoryOffset_;
26139       return *this;
26140     }
26141 
26142 
operator VkBindImageMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo26143     operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
26144     {
26145       return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
26146     }
26147 
operator VkBindImageMemoryInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo26148     operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
26149     {
26150       return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
26151     }
26152 
26153 
26154 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26155     auto operator<=>( BindImageMemoryInfo const& ) const = default;
26156 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryInfo26157     bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26158     {
26159       return ( sType == rhs.sType )
26160           && ( pNext == rhs.pNext )
26161           && ( image == rhs.image )
26162           && ( memory == rhs.memory )
26163           && ( memoryOffset == rhs.memoryOffset );
26164     }
26165 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryInfo26166     bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26167     {
26168       return !operator==( rhs );
26169     }
26170 #endif
26171 
26172 
26173 
26174   public:
26175     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
26176     const void* pNext = {};
26177     VULKAN_HPP_NAMESPACE::Image image = {};
26178     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
26179     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
26180 
26181   };
26182   static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" );
26183   static_assert( std::is_standard_layout<BindImageMemoryInfo>::value, "struct wrapper is not a standard layout!" );
26184 
26185   template <>
26186   struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
26187   {
26188     using Type = BindImageMemoryInfo;
26189   };
26190 
26191   struct BindImageMemorySwapchainInfoKHR
26192   {
26193     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
26194 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26195     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
26196                                                           uint32_t imageIndex_ = {} ) VULKAN_HPP_NOEXCEPT
26197       : swapchain( swapchain_ )
26198       , imageIndex( imageIndex_ )
26199     {}
26200 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26201     BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26202     {
26203       memcpy( &pNext, &rhs.pNext, sizeof( BindImageMemorySwapchainInfoKHR ) - offsetof( BindImageMemorySwapchainInfoKHR, pNext ) );
26204       return *this;
26205     }
26206 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26207     BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26208     {
26209       *this = rhs;
26210     }
26211 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26212     BindImageMemorySwapchainInfoKHR& operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26213     {
26214       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>(&rhs);
26215       return *this;
26216     }
26217 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26218     BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26219     {
26220       pNext = pNext_;
26221       return *this;
26222     }
26223 
setSwapchainVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26224     BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
26225     {
26226       swapchain = swapchain_;
26227       return *this;
26228     }
26229 
setImageIndexVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26230     BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
26231     {
26232       imageIndex = imageIndex_;
26233       return *this;
26234     }
26235 
26236 
operator VkBindImageMemorySwapchainInfoKHR const&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26237     operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT
26238     {
26239       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
26240     }
26241 
operator VkBindImageMemorySwapchainInfoKHR&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26242     operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
26243     {
26244       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
26245     }
26246 
26247 
26248 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26249     auto operator<=>( BindImageMemorySwapchainInfoKHR const& ) const = default;
26250 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26251     bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26252     {
26253       return ( sType == rhs.sType )
26254           && ( pNext == rhs.pNext )
26255           && ( swapchain == rhs.swapchain )
26256           && ( imageIndex == rhs.imageIndex );
26257     }
26258 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR26259     bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26260     {
26261       return !operator==( rhs );
26262     }
26263 #endif
26264 
26265 
26266 
26267   public:
26268     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
26269     const void* pNext = {};
26270     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
26271     uint32_t imageIndex = {};
26272 
26273   };
26274   static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" );
26275   static_assert( std::is_standard_layout<BindImageMemorySwapchainInfoKHR>::value, "struct wrapper is not a standard layout!" );
26276 
26277   template <>
26278   struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
26279   {
26280     using Type = BindImageMemorySwapchainInfoKHR;
26281   };
26282 
26283   struct BindImagePlaneMemoryInfo
26284   {
26285     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
26286 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26287     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor ) VULKAN_HPP_NOEXCEPT
26288       : planeAspect( planeAspect_ )
26289     {}
26290 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26291     BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26292     {
26293       memcpy( &pNext, &rhs.pNext, sizeof( BindImagePlaneMemoryInfo ) - offsetof( BindImagePlaneMemoryInfo, pNext ) );
26294       return *this;
26295     }
26296 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26297     BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26298     {
26299       *this = rhs;
26300     }
26301 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26302     BindImagePlaneMemoryInfo& operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26303     {
26304       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>(&rhs);
26305       return *this;
26306     }
26307 
setPNextVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26308     BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26309     {
26310       pNext = pNext_;
26311       return *this;
26312     }
26313 
setPlaneAspectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26314     BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
26315     {
26316       planeAspect = planeAspect_;
26317       return *this;
26318     }
26319 
26320 
operator VkBindImagePlaneMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26321     operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
26322     {
26323       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
26324     }
26325 
operator VkBindImagePlaneMemoryInfo&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26326     operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
26327     {
26328       return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
26329     }
26330 
26331 
26332 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26333     auto operator<=>( BindImagePlaneMemoryInfo const& ) const = default;
26334 #else
operator ==VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26335     bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26336     {
26337       return ( sType == rhs.sType )
26338           && ( pNext == rhs.pNext )
26339           && ( planeAspect == rhs.planeAspect );
26340     }
26341 
operator !=VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo26342     bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26343     {
26344       return !operator==( rhs );
26345     }
26346 #endif
26347 
26348 
26349 
26350   public:
26351     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
26352     const void* pNext = {};
26353     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
26354 
26355   };
26356   static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" );
26357   static_assert( std::is_standard_layout<BindImagePlaneMemoryInfo>::value, "struct wrapper is not a standard layout!" );
26358 
26359   template <>
26360   struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
26361   {
26362     using Type = BindImagePlaneMemoryInfo;
26363   };
26364 
26365   struct BindIndexBufferIndirectCommandNV
26366   {
26367 
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26368     VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
26369                                                            uint32_t size_ = {},
26370                                                            VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) VULKAN_HPP_NOEXCEPT
26371       : bufferAddress( bufferAddress_ )
26372       , size( size_ )
26373       , indexType( indexType_ )
26374     {}
26375 
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26376     BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
26377     {
26378       *this = rhs;
26379     }
26380 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26381     BindIndexBufferIndirectCommandNV& operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
26382     {
26383       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>(&rhs);
26384       return *this;
26385     }
26386 
setBufferAddressVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26387     BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
26388     {
26389       bufferAddress = bufferAddress_;
26390       return *this;
26391     }
26392 
setSizeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26393     BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
26394     {
26395       size = size_;
26396       return *this;
26397     }
26398 
setIndexTypeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26399     BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
26400     {
26401       indexType = indexType_;
26402       return *this;
26403     }
26404 
26405 
operator VkBindIndexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26406     operator VkBindIndexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
26407     {
26408       return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV*>( this );
26409     }
26410 
operator VkBindIndexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26411     operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
26412     {
26413       return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV*>( this );
26414     }
26415 
26416 
26417 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26418     auto operator<=>( BindIndexBufferIndirectCommandNV const& ) const = default;
26419 #else
operator ==VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26420     bool operator==( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
26421     {
26422       return ( bufferAddress == rhs.bufferAddress )
26423           && ( size == rhs.size )
26424           && ( indexType == rhs.indexType );
26425     }
26426 
operator !=VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV26427     bool operator!=( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
26428     {
26429       return !operator==( rhs );
26430     }
26431 #endif
26432 
26433 
26434 
26435   public:
26436     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
26437     uint32_t size = {};
26438     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
26439 
26440   };
26441   static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
26442   static_assert( std::is_standard_layout<BindIndexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
26443 
26444   struct BindShaderGroupIndirectCommandNV
26445   {
26446 
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26447     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( uint32_t groupIndex_ = {} ) VULKAN_HPP_NOEXCEPT
26448       : groupIndex( groupIndex_ )
26449     {}
26450 
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26451     BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
26452     {
26453       *this = rhs;
26454     }
26455 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26456     BindShaderGroupIndirectCommandNV& operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
26457     {
26458       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>(&rhs);
26459       return *this;
26460     }
26461 
setGroupIndexVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26462     BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
26463     {
26464       groupIndex = groupIndex_;
26465       return *this;
26466     }
26467 
26468 
operator VkBindShaderGroupIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26469     operator VkBindShaderGroupIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
26470     {
26471       return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV*>( this );
26472     }
26473 
operator VkBindShaderGroupIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26474     operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
26475     {
26476       return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV*>( this );
26477     }
26478 
26479 
26480 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26481     auto operator<=>( BindShaderGroupIndirectCommandNV const& ) const = default;
26482 #else
operator ==VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26483     bool operator==( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
26484     {
26485       return ( groupIndex == rhs.groupIndex );
26486     }
26487 
operator !=VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV26488     bool operator!=( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
26489     {
26490       return !operator==( rhs );
26491     }
26492 #endif
26493 
26494 
26495 
26496   public:
26497     uint32_t groupIndex = {};
26498 
26499   };
26500   static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), "struct and wrapper have different size!" );
26501   static_assert( std::is_standard_layout<BindShaderGroupIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
26502 
26503   struct SparseMemoryBind
26504   {
26505 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind26506     VULKAN_HPP_CONSTEXPR SparseMemoryBind( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {},
26507                                            VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
26508                                            VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
26509                                            VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
26510                                            VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
26511       : resourceOffset( resourceOffset_ )
26512       , size( size_ )
26513       , memory( memory_ )
26514       , memoryOffset( memoryOffset_ )
26515       , flags( flags_ )
26516     {}
26517 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind26518     SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
26519     {
26520       *this = rhs;
26521     }
26522 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind26523     SparseMemoryBind& operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
26524     {
26525       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>(&rhs);
26526       return *this;
26527     }
26528 
setResourceOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind26529     SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
26530     {
26531       resourceOffset = resourceOffset_;
26532       return *this;
26533     }
26534 
setSizeVULKAN_HPP_NAMESPACE::SparseMemoryBind26535     SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
26536     {
26537       size = size_;
26538       return *this;
26539     }
26540 
setMemoryVULKAN_HPP_NAMESPACE::SparseMemoryBind26541     SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
26542     {
26543       memory = memory_;
26544       return *this;
26545     }
26546 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind26547     SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
26548     {
26549       memoryOffset = memoryOffset_;
26550       return *this;
26551     }
26552 
setFlagsVULKAN_HPP_NAMESPACE::SparseMemoryBind26553     SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
26554     {
26555       flags = flags_;
26556       return *this;
26557     }
26558 
26559 
operator VkSparseMemoryBind const&VULKAN_HPP_NAMESPACE::SparseMemoryBind26560     operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT
26561     {
26562       return *reinterpret_cast<const VkSparseMemoryBind*>( this );
26563     }
26564 
operator VkSparseMemoryBind&VULKAN_HPP_NAMESPACE::SparseMemoryBind26565     operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
26566     {
26567       return *reinterpret_cast<VkSparseMemoryBind*>( this );
26568     }
26569 
26570 
26571 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26572     auto operator<=>( SparseMemoryBind const& ) const = default;
26573 #else
operator ==VULKAN_HPP_NAMESPACE::SparseMemoryBind26574     bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
26575     {
26576       return ( resourceOffset == rhs.resourceOffset )
26577           && ( size == rhs.size )
26578           && ( memory == rhs.memory )
26579           && ( memoryOffset == rhs.memoryOffset )
26580           && ( flags == rhs.flags );
26581     }
26582 
operator !=VULKAN_HPP_NAMESPACE::SparseMemoryBind26583     bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
26584     {
26585       return !operator==( rhs );
26586     }
26587 #endif
26588 
26589 
26590 
26591   public:
26592     VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
26593     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
26594     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
26595     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
26596     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
26597 
26598   };
26599   static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" );
26600   static_assert( std::is_standard_layout<SparseMemoryBind>::value, "struct wrapper is not a standard layout!" );
26601 
26602   struct SparseBufferMemoryBindInfo
26603   {
26604 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26605     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
26606                                                      uint32_t bindCount_ = {},
26607                                                      const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
26608       : buffer( buffer_ )
26609       , bindCount( bindCount_ )
26610       , pBinds( pBinds_ )
26611     {}
26612 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26613     SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26614     {
26615       *this = rhs;
26616     }
26617 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26618     SparseBufferMemoryBindInfo& operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26619     {
26620       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>(&rhs);
26621       return *this;
26622     }
26623 
setBufferVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26624     SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
26625     {
26626       buffer = buffer_;
26627       return *this;
26628     }
26629 
setBindCountVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26630     SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
26631     {
26632       bindCount = bindCount_;
26633       return *this;
26634     }
26635 
setPBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26636     SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
26637     {
26638       pBinds = pBinds_;
26639       return *this;
26640     }
26641 
26642 
operator VkSparseBufferMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26643     operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
26644     {
26645       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
26646     }
26647 
operator VkSparseBufferMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26648     operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
26649     {
26650       return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
26651     }
26652 
26653 
26654 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26655     auto operator<=>( SparseBufferMemoryBindInfo const& ) const = default;
26656 #else
operator ==VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26657     bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26658     {
26659       return ( buffer == rhs.buffer )
26660           && ( bindCount == rhs.bindCount )
26661           && ( pBinds == rhs.pBinds );
26662     }
26663 
operator !=VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo26664     bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26665     {
26666       return !operator==( rhs );
26667     }
26668 #endif
26669 
26670 
26671 
26672   public:
26673     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
26674     uint32_t bindCount = {};
26675     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
26676 
26677   };
26678   static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" );
26679   static_assert( std::is_standard_layout<SparseBufferMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
26680 
26681   struct SparseImageOpaqueMemoryBindInfo
26682   {
26683 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26684     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
26685                                                           uint32_t bindCount_ = {},
26686                                                           const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
26687       : image( image_ )
26688       , bindCount( bindCount_ )
26689       , pBinds( pBinds_ )
26690     {}
26691 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26692     SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26693     {
26694       *this = rhs;
26695     }
26696 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26697     SparseImageOpaqueMemoryBindInfo& operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26698     {
26699       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>(&rhs);
26700       return *this;
26701     }
26702 
setImageVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26703     SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
26704     {
26705       image = image_;
26706       return *this;
26707     }
26708 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26709     SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
26710     {
26711       bindCount = bindCount_;
26712       return *this;
26713     }
26714 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26715     SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
26716     {
26717       pBinds = pBinds_;
26718       return *this;
26719     }
26720 
26721 
operator VkSparseImageOpaqueMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26722     operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
26723     {
26724       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
26725     }
26726 
operator VkSparseImageOpaqueMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26727     operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
26728     {
26729       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
26730     }
26731 
26732 
26733 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26734     auto operator<=>( SparseImageOpaqueMemoryBindInfo const& ) const = default;
26735 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26736     bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26737     {
26738       return ( image == rhs.image )
26739           && ( bindCount == rhs.bindCount )
26740           && ( pBinds == rhs.pBinds );
26741     }
26742 
operator !=VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo26743     bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26744     {
26745       return !operator==( rhs );
26746     }
26747 #endif
26748 
26749 
26750 
26751   public:
26752     VULKAN_HPP_NAMESPACE::Image image = {};
26753     uint32_t bindCount = {};
26754     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
26755 
26756   };
26757   static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" );
26758   static_assert( std::is_standard_layout<SparseImageOpaqueMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
26759 
26760   struct ImageSubresource
26761   {
26762 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource26763     VULKAN_HPP_CONSTEXPR ImageSubresource( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
26764                                            uint32_t mipLevel_ = {},
26765                                            uint32_t arrayLayer_ = {} ) VULKAN_HPP_NOEXCEPT
26766       : aspectMask( aspectMask_ )
26767       , mipLevel( mipLevel_ )
26768       , arrayLayer( arrayLayer_ )
26769     {}
26770 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource26771     ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
26772     {
26773       *this = rhs;
26774     }
26775 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource26776     ImageSubresource& operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
26777     {
26778       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>(&rhs);
26779       return *this;
26780     }
26781 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresource26782     ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
26783     {
26784       aspectMask = aspectMask_;
26785       return *this;
26786     }
26787 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresource26788     ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
26789     {
26790       mipLevel = mipLevel_;
26791       return *this;
26792     }
26793 
setArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresource26794     ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
26795     {
26796       arrayLayer = arrayLayer_;
26797       return *this;
26798     }
26799 
26800 
operator VkImageSubresource const&VULKAN_HPP_NAMESPACE::ImageSubresource26801     operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT
26802     {
26803       return *reinterpret_cast<const VkImageSubresource*>( this );
26804     }
26805 
operator VkImageSubresource&VULKAN_HPP_NAMESPACE::ImageSubresource26806     operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
26807     {
26808       return *reinterpret_cast<VkImageSubresource*>( this );
26809     }
26810 
26811 
26812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26813     auto operator<=>( ImageSubresource const& ) const = default;
26814 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource26815     bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
26816     {
26817       return ( aspectMask == rhs.aspectMask )
26818           && ( mipLevel == rhs.mipLevel )
26819           && ( arrayLayer == rhs.arrayLayer );
26820     }
26821 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource26822     bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
26823     {
26824       return !operator==( rhs );
26825     }
26826 #endif
26827 
26828 
26829 
26830   public:
26831     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
26832     uint32_t mipLevel = {};
26833     uint32_t arrayLayer = {};
26834 
26835   };
26836   static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" );
26837   static_assert( std::is_standard_layout<ImageSubresource>::value, "struct wrapper is not a standard layout!" );
26838 
26839   struct Offset3D
26840   {
26841 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D26842     VULKAN_HPP_CONSTEXPR Offset3D( int32_t x_ = {},
26843                                    int32_t y_ = {},
26844                                    int32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
26845       : x( x_ )
26846       , y( y_ )
26847       , z( z_ )
26848     {}
26849 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D26850     explicit Offset3D( Offset2D const& offset2D,
26851                        int32_t z_ = {} )
26852       : x( offset2D.x )
26853       , y( offset2D.y )
26854       , z( z_ )
26855     {}
26856 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D26857     Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
26858     {
26859       *this = rhs;
26860     }
26861 
operator =VULKAN_HPP_NAMESPACE::Offset3D26862     Offset3D& operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
26863     {
26864       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>(&rhs);
26865       return *this;
26866     }
26867 
setXVULKAN_HPP_NAMESPACE::Offset3D26868     Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
26869     {
26870       x = x_;
26871       return *this;
26872     }
26873 
setYVULKAN_HPP_NAMESPACE::Offset3D26874     Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
26875     {
26876       y = y_;
26877       return *this;
26878     }
26879 
setZVULKAN_HPP_NAMESPACE::Offset3D26880     Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
26881     {
26882       z = z_;
26883       return *this;
26884     }
26885 
26886 
operator VkOffset3D const&VULKAN_HPP_NAMESPACE::Offset3D26887     operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT
26888     {
26889       return *reinterpret_cast<const VkOffset3D*>( this );
26890     }
26891 
operator VkOffset3D&VULKAN_HPP_NAMESPACE::Offset3D26892     operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
26893     {
26894       return *reinterpret_cast<VkOffset3D*>( this );
26895     }
26896 
26897 
26898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26899     auto operator<=>( Offset3D const& ) const = default;
26900 #else
operator ==VULKAN_HPP_NAMESPACE::Offset3D26901     bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
26902     {
26903       return ( x == rhs.x )
26904           && ( y == rhs.y )
26905           && ( z == rhs.z );
26906     }
26907 
operator !=VULKAN_HPP_NAMESPACE::Offset3D26908     bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
26909     {
26910       return !operator==( rhs );
26911     }
26912 #endif
26913 
26914 
26915 
26916   public:
26917     int32_t x = {};
26918     int32_t y = {};
26919     int32_t z = {};
26920 
26921   };
26922   static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" );
26923   static_assert( std::is_standard_layout<Offset3D>::value, "struct wrapper is not a standard layout!" );
26924 
26925   struct Extent3D
26926   {
26927 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D26928     VULKAN_HPP_CONSTEXPR Extent3D( uint32_t width_ = {},
26929                                    uint32_t height_ = {},
26930                                    uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
26931       : width( width_ )
26932       , height( height_ )
26933       , depth( depth_ )
26934     {}
26935 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D26936     explicit Extent3D( Extent2D const& extent2D,
26937                        uint32_t depth_ = {} )
26938       : width( extent2D.width )
26939       , height( extent2D.height )
26940       , depth( depth_ )
26941     {}
26942 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D26943     Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
26944     {
26945       *this = rhs;
26946     }
26947 
operator =VULKAN_HPP_NAMESPACE::Extent3D26948     Extent3D& operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
26949     {
26950       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>(&rhs);
26951       return *this;
26952     }
26953 
setWidthVULKAN_HPP_NAMESPACE::Extent3D26954     Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
26955     {
26956       width = width_;
26957       return *this;
26958     }
26959 
setHeightVULKAN_HPP_NAMESPACE::Extent3D26960     Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
26961     {
26962       height = height_;
26963       return *this;
26964     }
26965 
setDepthVULKAN_HPP_NAMESPACE::Extent3D26966     Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
26967     {
26968       depth = depth_;
26969       return *this;
26970     }
26971 
26972 
operator VkExtent3D const&VULKAN_HPP_NAMESPACE::Extent3D26973     operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT
26974     {
26975       return *reinterpret_cast<const VkExtent3D*>( this );
26976     }
26977 
operator VkExtent3D&VULKAN_HPP_NAMESPACE::Extent3D26978     operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
26979     {
26980       return *reinterpret_cast<VkExtent3D*>( this );
26981     }
26982 
26983 
26984 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26985     auto operator<=>( Extent3D const& ) const = default;
26986 #else
operator ==VULKAN_HPP_NAMESPACE::Extent3D26987     bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
26988     {
26989       return ( width == rhs.width )
26990           && ( height == rhs.height )
26991           && ( depth == rhs.depth );
26992     }
26993 
operator !=VULKAN_HPP_NAMESPACE::Extent3D26994     bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
26995     {
26996       return !operator==( rhs );
26997     }
26998 #endif
26999 
27000 
27001 
27002   public:
27003     uint32_t width = {};
27004     uint32_t height = {};
27005     uint32_t depth = {};
27006 
27007   };
27008   static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" );
27009   static_assert( std::is_standard_layout<Extent3D>::value, "struct wrapper is not a standard layout!" );
27010 
27011   struct SparseImageMemoryBind
27012   {
27013 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27014     VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {},
27015                                                 VULKAN_HPP_NAMESPACE::Offset3D offset_ = {},
27016                                                 VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
27017                                                 VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
27018                                                 VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
27019                                                 VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
27020       : subresource( subresource_ )
27021       , offset( offset_ )
27022       , extent( extent_ )
27023       , memory( memory_ )
27024       , memoryOffset( memoryOffset_ )
27025       , flags( flags_ )
27026     {}
27027 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27028     SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
27029     {
27030       *this = rhs;
27031     }
27032 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind27033     SparseImageMemoryBind& operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
27034     {
27035       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>(&rhs);
27036       return *this;
27037     }
27038 
setSubresourceVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27039     SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
27040     {
27041       subresource = subresource_;
27042       return *this;
27043     }
27044 
setOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27045     SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
27046     {
27047       offset = offset_;
27048       return *this;
27049     }
27050 
setExtentVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27051     SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
27052     {
27053       extent = extent_;
27054       return *this;
27055     }
27056 
setMemoryVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27057     SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
27058     {
27059       memory = memory_;
27060       return *this;
27061     }
27062 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27063     SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
27064     {
27065       memoryOffset = memoryOffset_;
27066       return *this;
27067     }
27068 
setFlagsVULKAN_HPP_NAMESPACE::SparseImageMemoryBind27069     SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
27070     {
27071       flags = flags_;
27072       return *this;
27073     }
27074 
27075 
operator VkSparseImageMemoryBind const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind27076     operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT
27077     {
27078       return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
27079     }
27080 
operator VkSparseImageMemoryBind&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind27081     operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
27082     {
27083       return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
27084     }
27085 
27086 
27087 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27088     auto operator<=>( SparseImageMemoryBind const& ) const = default;
27089 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBind27090     bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
27091     {
27092       return ( subresource == rhs.subresource )
27093           && ( offset == rhs.offset )
27094           && ( extent == rhs.extent )
27095           && ( memory == rhs.memory )
27096           && ( memoryOffset == rhs.memoryOffset )
27097           && ( flags == rhs.flags );
27098     }
27099 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBind27100     bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
27101     {
27102       return !operator==( rhs );
27103     }
27104 #endif
27105 
27106 
27107 
27108   public:
27109     VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
27110     VULKAN_HPP_NAMESPACE::Offset3D offset = {};
27111     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
27112     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
27113     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
27114     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
27115 
27116   };
27117   static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" );
27118   static_assert( std::is_standard_layout<SparseImageMemoryBind>::value, "struct wrapper is not a standard layout!" );
27119 
27120   struct SparseImageMemoryBindInfo
27121   {
27122 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27123     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
27124                                                     uint32_t bindCount_ = {},
27125                                                     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
27126       : image( image_ )
27127       , bindCount( bindCount_ )
27128       , pBinds( pBinds_ )
27129     {}
27130 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27131     SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27132     {
27133       *this = rhs;
27134     }
27135 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27136     SparseImageMemoryBindInfo& operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27137     {
27138       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>(&rhs);
27139       return *this;
27140     }
27141 
setImageVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27142     SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
27143     {
27144       image = image_;
27145       return *this;
27146     }
27147 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27148     SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
27149     {
27150       bindCount = bindCount_;
27151       return *this;
27152     }
27153 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27154     SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
27155     {
27156       pBinds = pBinds_;
27157       return *this;
27158     }
27159 
27160 
operator VkSparseImageMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27161     operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
27162     {
27163       return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
27164     }
27165 
operator VkSparseImageMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27166     operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
27167     {
27168       return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
27169     }
27170 
27171 
27172 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27173     auto operator<=>( SparseImageMemoryBindInfo const& ) const = default;
27174 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27175     bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27176     {
27177       return ( image == rhs.image )
27178           && ( bindCount == rhs.bindCount )
27179           && ( pBinds == rhs.pBinds );
27180     }
27181 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo27182     bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27183     {
27184       return !operator==( rhs );
27185     }
27186 #endif
27187 
27188 
27189 
27190   public:
27191     VULKAN_HPP_NAMESPACE::Image image = {};
27192     uint32_t bindCount = {};
27193     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {};
27194 
27195   };
27196   static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" );
27197   static_assert( std::is_standard_layout<SparseImageMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
27198 
27199   struct BindSparseInfo
27200   {
27201     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
27202 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo27203     VULKAN_HPP_CONSTEXPR BindSparseInfo( uint32_t waitSemaphoreCount_ = {},
27204                                          const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {},
27205                                          uint32_t bufferBindCount_ = {},
27206                                          const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ = {},
27207                                          uint32_t imageOpaqueBindCount_ = {},
27208                                          const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = {},
27209                                          uint32_t imageBindCount_ = {},
27210                                          const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ = {},
27211                                          uint32_t signalSemaphoreCount_ = {},
27212                                          const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {} ) VULKAN_HPP_NOEXCEPT
27213       : waitSemaphoreCount( waitSemaphoreCount_ )
27214       , pWaitSemaphores( pWaitSemaphores_ )
27215       , bufferBindCount( bufferBindCount_ )
27216       , pBufferBinds( pBufferBinds_ )
27217       , imageOpaqueBindCount( imageOpaqueBindCount_ )
27218       , pImageOpaqueBinds( pImageOpaqueBinds_ )
27219       , imageBindCount( imageBindCount_ )
27220       , pImageBinds( pImageBinds_ )
27221       , signalSemaphoreCount( signalSemaphoreCount_ )
27222       , pSignalSemaphores( pSignalSemaphores_ )
27223     {}
27224 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo27225     BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27226     {
27227       memcpy( &pNext, &rhs.pNext, sizeof( BindSparseInfo ) - offsetof( BindSparseInfo, pNext ) );
27228       return *this;
27229     }
27230 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo27231     BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27232     {
27233       *this = rhs;
27234     }
27235 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo27236     BindSparseInfo& operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27237     {
27238       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>(&rhs);
27239       return *this;
27240     }
27241 
setPNextVULKAN_HPP_NAMESPACE::BindSparseInfo27242     BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27243     {
27244       pNext = pNext_;
27245       return *this;
27246     }
27247 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo27248     BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
27249     {
27250       waitSemaphoreCount = waitSemaphoreCount_;
27251       return *this;
27252     }
27253 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo27254     BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
27255     {
27256       pWaitSemaphores = pWaitSemaphores_;
27257       return *this;
27258     }
27259 
setBufferBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo27260     BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
27261     {
27262       bufferBindCount = bufferBindCount_;
27263       return *this;
27264     }
27265 
setPBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo27266     BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
27267     {
27268       pBufferBinds = pBufferBinds_;
27269       return *this;
27270     }
27271 
setImageOpaqueBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo27272     BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
27273     {
27274       imageOpaqueBindCount = imageOpaqueBindCount_;
27275       return *this;
27276     }
27277 
setPImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo27278     BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
27279     {
27280       pImageOpaqueBinds = pImageOpaqueBinds_;
27281       return *this;
27282     }
27283 
setImageBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo27284     BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
27285     {
27286       imageBindCount = imageBindCount_;
27287       return *this;
27288     }
27289 
setPImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo27290     BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT
27291     {
27292       pImageBinds = pImageBinds_;
27293       return *this;
27294     }
27295 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo27296     BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
27297     {
27298       signalSemaphoreCount = signalSemaphoreCount_;
27299       return *this;
27300     }
27301 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo27302     BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
27303     {
27304       pSignalSemaphores = pSignalSemaphores_;
27305       return *this;
27306     }
27307 
27308 
operator VkBindSparseInfo const&VULKAN_HPP_NAMESPACE::BindSparseInfo27309     operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
27310     {
27311       return *reinterpret_cast<const VkBindSparseInfo*>( this );
27312     }
27313 
operator VkBindSparseInfo&VULKAN_HPP_NAMESPACE::BindSparseInfo27314     operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
27315     {
27316       return *reinterpret_cast<VkBindSparseInfo*>( this );
27317     }
27318 
27319 
27320 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27321     auto operator<=>( BindSparseInfo const& ) const = default;
27322 #else
operator ==VULKAN_HPP_NAMESPACE::BindSparseInfo27323     bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27324     {
27325       return ( sType == rhs.sType )
27326           && ( pNext == rhs.pNext )
27327           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
27328           && ( pWaitSemaphores == rhs.pWaitSemaphores )
27329           && ( bufferBindCount == rhs.bufferBindCount )
27330           && ( pBufferBinds == rhs.pBufferBinds )
27331           && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
27332           && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
27333           && ( imageBindCount == rhs.imageBindCount )
27334           && ( pImageBinds == rhs.pImageBinds )
27335           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
27336           && ( pSignalSemaphores == rhs.pSignalSemaphores );
27337     }
27338 
operator !=VULKAN_HPP_NAMESPACE::BindSparseInfo27339     bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27340     {
27341       return !operator==( rhs );
27342     }
27343 #endif
27344 
27345 
27346 
27347   public:
27348     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
27349     const void* pNext = {};
27350     uint32_t waitSemaphoreCount = {};
27351     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
27352     uint32_t bufferBindCount = {};
27353     const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {};
27354     uint32_t imageOpaqueBindCount = {};
27355     const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {};
27356     uint32_t imageBindCount = {};
27357     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {};
27358     uint32_t signalSemaphoreCount = {};
27359     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
27360 
27361   };
27362   static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" );
27363   static_assert( std::is_standard_layout<BindSparseInfo>::value, "struct wrapper is not a standard layout!" );
27364 
27365   template <>
27366   struct CppType<StructureType, StructureType::eBindSparseInfo>
27367   {
27368     using Type = BindSparseInfo;
27369   };
27370 
27371   struct BindVertexBufferIndirectCommandNV
27372   {
27373 
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27374     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
27375                                                             uint32_t size_ = {},
27376                                                             uint32_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
27377       : bufferAddress( bufferAddress_ )
27378       , size( size_ )
27379       , stride( stride_ )
27380     {}
27381 
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27382     BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
27383     {
27384       *this = rhs;
27385     }
27386 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27387     BindVertexBufferIndirectCommandNV& operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
27388     {
27389       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>(&rhs);
27390       return *this;
27391     }
27392 
setBufferAddressVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27393     BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
27394     {
27395       bufferAddress = bufferAddress_;
27396       return *this;
27397     }
27398 
setSizeVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27399     BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
27400     {
27401       size = size_;
27402       return *this;
27403     }
27404 
setStrideVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27405     BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
27406     {
27407       stride = stride_;
27408       return *this;
27409     }
27410 
27411 
operator VkBindVertexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27412     operator VkBindVertexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
27413     {
27414       return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV*>( this );
27415     }
27416 
operator VkBindVertexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27417     operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
27418     {
27419       return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV*>( this );
27420     }
27421 
27422 
27423 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27424     auto operator<=>( BindVertexBufferIndirectCommandNV const& ) const = default;
27425 #else
operator ==VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27426     bool operator==( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
27427     {
27428       return ( bufferAddress == rhs.bufferAddress )
27429           && ( size == rhs.size )
27430           && ( stride == rhs.stride );
27431     }
27432 
operator !=VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV27433     bool operator!=( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
27434     {
27435       return !operator==( rhs );
27436     }
27437 #endif
27438 
27439 
27440 
27441   public:
27442     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
27443     uint32_t size = {};
27444     uint32_t stride = {};
27445 
27446   };
27447   static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
27448   static_assert( std::is_standard_layout<BindVertexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
27449 
27450   struct BufferCopy
27451   {
27452 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy27453     VULKAN_HPP_CONSTEXPR BufferCopy( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {},
27454                                      VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {},
27455                                      VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
27456       : srcOffset( srcOffset_ )
27457       , dstOffset( dstOffset_ )
27458       , size( size_ )
27459     {}
27460 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy27461     BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
27462     {
27463       *this = rhs;
27464     }
27465 
operator =VULKAN_HPP_NAMESPACE::BufferCopy27466     BufferCopy& operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
27467     {
27468       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>(&rhs);
27469       return *this;
27470     }
27471 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy27472     BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
27473     {
27474       srcOffset = srcOffset_;
27475       return *this;
27476     }
27477 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy27478     BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
27479     {
27480       dstOffset = dstOffset_;
27481       return *this;
27482     }
27483 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy27484     BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
27485     {
27486       size = size_;
27487       return *this;
27488     }
27489 
27490 
operator VkBufferCopy const&VULKAN_HPP_NAMESPACE::BufferCopy27491     operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT
27492     {
27493       return *reinterpret_cast<const VkBufferCopy*>( this );
27494     }
27495 
operator VkBufferCopy&VULKAN_HPP_NAMESPACE::BufferCopy27496     operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
27497     {
27498       return *reinterpret_cast<VkBufferCopy*>( this );
27499     }
27500 
27501 
27502 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27503     auto operator<=>( BufferCopy const& ) const = default;
27504 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy27505     bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
27506     {
27507       return ( srcOffset == rhs.srcOffset )
27508           && ( dstOffset == rhs.dstOffset )
27509           && ( size == rhs.size );
27510     }
27511 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy27512     bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
27513     {
27514       return !operator==( rhs );
27515     }
27516 #endif
27517 
27518 
27519 
27520   public:
27521     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
27522     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
27523     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
27524 
27525   };
27526   static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" );
27527   static_assert( std::is_standard_layout<BufferCopy>::value, "struct wrapper is not a standard layout!" );
27528 
27529   struct BufferCreateInfo
27530   {
27531     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
27532 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo27533     VULKAN_HPP_CONSTEXPR BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {},
27534                                            VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
27535                                            VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
27536                                            VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
27537                                            uint32_t queueFamilyIndexCount_ = {},
27538                                            const uint32_t* pQueueFamilyIndices_ = {} ) VULKAN_HPP_NOEXCEPT
27539       : flags( flags_ )
27540       , size( size_ )
27541       , usage( usage_ )
27542       , sharingMode( sharingMode_ )
27543       , queueFamilyIndexCount( queueFamilyIndexCount_ )
27544       , pQueueFamilyIndices( pQueueFamilyIndices_ )
27545     {}
27546 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo27547     BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27548     {
27549       memcpy( &pNext, &rhs.pNext, sizeof( BufferCreateInfo ) - offsetof( BufferCreateInfo, pNext ) );
27550       return *this;
27551     }
27552 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo27553     BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27554     {
27555       *this = rhs;
27556     }
27557 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo27558     BufferCreateInfo& operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27559     {
27560       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>(&rhs);
27561       return *this;
27562     }
27563 
setPNextVULKAN_HPP_NAMESPACE::BufferCreateInfo27564     BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27565     {
27566       pNext = pNext_;
27567       return *this;
27568     }
27569 
setFlagsVULKAN_HPP_NAMESPACE::BufferCreateInfo27570     BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
27571     {
27572       flags = flags_;
27573       return *this;
27574     }
27575 
setSizeVULKAN_HPP_NAMESPACE::BufferCreateInfo27576     BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
27577     {
27578       size = size_;
27579       return *this;
27580     }
27581 
setUsageVULKAN_HPP_NAMESPACE::BufferCreateInfo27582     BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
27583     {
27584       usage = usage_;
27585       return *this;
27586     }
27587 
setSharingModeVULKAN_HPP_NAMESPACE::BufferCreateInfo27588     BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
27589     {
27590       sharingMode = sharingMode_;
27591       return *this;
27592     }
27593 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::BufferCreateInfo27594     BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
27595     {
27596       queueFamilyIndexCount = queueFamilyIndexCount_;
27597       return *this;
27598     }
27599 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo27600     BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
27601     {
27602       pQueueFamilyIndices = pQueueFamilyIndices_;
27603       return *this;
27604     }
27605 
27606 
operator VkBufferCreateInfo const&VULKAN_HPP_NAMESPACE::BufferCreateInfo27607     operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
27608     {
27609       return *reinterpret_cast<const VkBufferCreateInfo*>( this );
27610     }
27611 
operator VkBufferCreateInfo&VULKAN_HPP_NAMESPACE::BufferCreateInfo27612     operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
27613     {
27614       return *reinterpret_cast<VkBufferCreateInfo*>( this );
27615     }
27616 
27617 
27618 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27619     auto operator<=>( BufferCreateInfo const& ) const = default;
27620 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCreateInfo27621     bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27622     {
27623       return ( sType == rhs.sType )
27624           && ( pNext == rhs.pNext )
27625           && ( flags == rhs.flags )
27626           && ( size == rhs.size )
27627           && ( usage == rhs.usage )
27628           && ( sharingMode == rhs.sharingMode )
27629           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
27630           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
27631     }
27632 
operator !=VULKAN_HPP_NAMESPACE::BufferCreateInfo27633     bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27634     {
27635       return !operator==( rhs );
27636     }
27637 #endif
27638 
27639 
27640 
27641   public:
27642     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
27643     const void* pNext = {};
27644     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
27645     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
27646     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
27647     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
27648     uint32_t queueFamilyIndexCount = {};
27649     const uint32_t* pQueueFamilyIndices = {};
27650 
27651   };
27652   static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
27653   static_assert( std::is_standard_layout<BufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
27654 
27655   template <>
27656   struct CppType<StructureType, StructureType::eBufferCreateInfo>
27657   {
27658     using Type = BufferCreateInfo;
27659   };
27660 
27661   struct BufferDeviceAddressCreateInfoEXT
27662   {
27663     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
27664 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27665     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) VULKAN_HPP_NOEXCEPT
27666       : deviceAddress( deviceAddress_ )
27667     {}
27668 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27669     BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27670     {
27671       memcpy( &pNext, &rhs.pNext, sizeof( BufferDeviceAddressCreateInfoEXT ) - offsetof( BufferDeviceAddressCreateInfoEXT, pNext ) );
27672       return *this;
27673     }
27674 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27675     BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27676     {
27677       *this = rhs;
27678     }
27679 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27680     BufferDeviceAddressCreateInfoEXT& operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27681     {
27682       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>(&rhs);
27683       return *this;
27684     }
27685 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27686     BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27687     {
27688       pNext = pNext_;
27689       return *this;
27690     }
27691 
setDeviceAddressVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27692     BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
27693     {
27694       deviceAddress = deviceAddress_;
27695       return *this;
27696     }
27697 
27698 
operator VkBufferDeviceAddressCreateInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27699     operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27700     {
27701       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
27702     }
27703 
operator VkBufferDeviceAddressCreateInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27704     operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
27705     {
27706       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
27707     }
27708 
27709 
27710 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27711     auto operator<=>( BufferDeviceAddressCreateInfoEXT const& ) const = default;
27712 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27713     bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27714     {
27715       return ( sType == rhs.sType )
27716           && ( pNext == rhs.pNext )
27717           && ( deviceAddress == rhs.deviceAddress );
27718     }
27719 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT27720     bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27721     {
27722       return !operator==( rhs );
27723     }
27724 #endif
27725 
27726 
27727 
27728   public:
27729     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
27730     const void* pNext = {};
27731     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
27732 
27733   };
27734   static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" );
27735   static_assert( std::is_standard_layout<BufferDeviceAddressCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
27736 
27737   template <>
27738   struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
27739   {
27740     using Type = BufferDeviceAddressCreateInfoEXT;
27741   };
27742 
27743   struct BufferDeviceAddressInfo
27744   {
27745     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
27746 
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27747     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT
27748       : buffer( buffer_ )
27749     {}
27750 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27751     BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27752     {
27753       memcpy( &pNext, &rhs.pNext, sizeof( BufferDeviceAddressInfo ) - offsetof( BufferDeviceAddressInfo, pNext ) );
27754       return *this;
27755     }
27756 
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27757     BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27758     {
27759       *this = rhs;
27760     }
27761 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27762     BufferDeviceAddressInfo& operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27763     {
27764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>(&rhs);
27765       return *this;
27766     }
27767 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27768     BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27769     {
27770       pNext = pNext_;
27771       return *this;
27772     }
27773 
setBufferVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27774     BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
27775     {
27776       buffer = buffer_;
27777       return *this;
27778     }
27779 
27780 
operator VkBufferDeviceAddressInfo const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27781     operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT
27782     {
27783       return *reinterpret_cast<const VkBufferDeviceAddressInfo*>( this );
27784     }
27785 
operator VkBufferDeviceAddressInfo&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27786     operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
27787     {
27788       return *reinterpret_cast<VkBufferDeviceAddressInfo*>( this );
27789     }
27790 
27791 
27792 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27793     auto operator<=>( BufferDeviceAddressInfo const& ) const = default;
27794 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27795     bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27796     {
27797       return ( sType == rhs.sType )
27798           && ( pNext == rhs.pNext )
27799           && ( buffer == rhs.buffer );
27800     }
27801 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo27802     bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27803     {
27804       return !operator==( rhs );
27805     }
27806 #endif
27807 
27808 
27809 
27810   public:
27811     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
27812     const void* pNext = {};
27813     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
27814 
27815   };
27816   static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" );
27817   static_assert( std::is_standard_layout<BufferDeviceAddressInfo>::value, "struct wrapper is not a standard layout!" );
27818 
27819   template <>
27820   struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
27821   {
27822     using Type = BufferDeviceAddressInfo;
27823   };
27824 
27825   struct ImageSubresourceLayers
27826   {
27827 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers27828     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
27829                                                  uint32_t mipLevel_ = {},
27830                                                  uint32_t baseArrayLayer_ = {},
27831                                                  uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
27832       : aspectMask( aspectMask_ )
27833       , mipLevel( mipLevel_ )
27834       , baseArrayLayer( baseArrayLayer_ )
27835       , layerCount( layerCount_ )
27836     {}
27837 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers27838     ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
27839     {
27840       *this = rhs;
27841     }
27842 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers27843     ImageSubresourceLayers& operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
27844     {
27845       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>(&rhs);
27846       return *this;
27847     }
27848 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceLayers27849     ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
27850     {
27851       aspectMask = aspectMask_;
27852       return *this;
27853     }
27854 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceLayers27855     ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
27856     {
27857       mipLevel = mipLevel_;
27858       return *this;
27859     }
27860 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceLayers27861     ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
27862     {
27863       baseArrayLayer = baseArrayLayer_;
27864       return *this;
27865     }
27866 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceLayers27867     ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
27868     {
27869       layerCount = layerCount_;
27870       return *this;
27871     }
27872 
27873 
operator VkImageSubresourceLayers const&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers27874     operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT
27875     {
27876       return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
27877     }
27878 
operator VkImageSubresourceLayers&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers27879     operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
27880     {
27881       return *reinterpret_cast<VkImageSubresourceLayers*>( this );
27882     }
27883 
27884 
27885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27886     auto operator<=>( ImageSubresourceLayers const& ) const = default;
27887 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceLayers27888     bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
27889     {
27890       return ( aspectMask == rhs.aspectMask )
27891           && ( mipLevel == rhs.mipLevel )
27892           && ( baseArrayLayer == rhs.baseArrayLayer )
27893           && ( layerCount == rhs.layerCount );
27894     }
27895 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceLayers27896     bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
27897     {
27898       return !operator==( rhs );
27899     }
27900 #endif
27901 
27902 
27903 
27904   public:
27905     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
27906     uint32_t mipLevel = {};
27907     uint32_t baseArrayLayer = {};
27908     uint32_t layerCount = {};
27909 
27910   };
27911   static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" );
27912   static_assert( std::is_standard_layout<ImageSubresourceLayers>::value, "struct wrapper is not a standard layout!" );
27913 
27914   struct BufferImageCopy
27915   {
27916 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy27917     VULKAN_HPP_CONSTEXPR BufferImageCopy( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {},
27918                                           uint32_t bufferRowLength_ = {},
27919                                           uint32_t bufferImageHeight_ = {},
27920                                           VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
27921                                           VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
27922                                           VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT
27923       : bufferOffset( bufferOffset_ )
27924       , bufferRowLength( bufferRowLength_ )
27925       , bufferImageHeight( bufferImageHeight_ )
27926       , imageSubresource( imageSubresource_ )
27927       , imageOffset( imageOffset_ )
27928       , imageExtent( imageExtent_ )
27929     {}
27930 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy27931     BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
27932     {
27933       *this = rhs;
27934     }
27935 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy27936     BufferImageCopy& operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
27937     {
27938       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>(&rhs);
27939       return *this;
27940     }
27941 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy27942     BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
27943     {
27944       bufferOffset = bufferOffset_;
27945       return *this;
27946     }
27947 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy27948     BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
27949     {
27950       bufferRowLength = bufferRowLength_;
27951       return *this;
27952     }
27953 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy27954     BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
27955     {
27956       bufferImageHeight = bufferImageHeight_;
27957       return *this;
27958     }
27959 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy27960     BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
27961     {
27962       imageSubresource = imageSubresource_;
27963       return *this;
27964     }
27965 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy27966     BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
27967     {
27968       imageOffset = imageOffset_;
27969       return *this;
27970     }
27971 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy27972     BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
27973     {
27974       imageExtent = imageExtent_;
27975       return *this;
27976     }
27977 
27978 
operator VkBufferImageCopy const&VULKAN_HPP_NAMESPACE::BufferImageCopy27979     operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT
27980     {
27981       return *reinterpret_cast<const VkBufferImageCopy*>( this );
27982     }
27983 
operator VkBufferImageCopy&VULKAN_HPP_NAMESPACE::BufferImageCopy27984     operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
27985     {
27986       return *reinterpret_cast<VkBufferImageCopy*>( this );
27987     }
27988 
27989 
27990 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27991     auto operator<=>( BufferImageCopy const& ) const = default;
27992 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy27993     bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
27994     {
27995       return ( bufferOffset == rhs.bufferOffset )
27996           && ( bufferRowLength == rhs.bufferRowLength )
27997           && ( bufferImageHeight == rhs.bufferImageHeight )
27998           && ( imageSubresource == rhs.imageSubresource )
27999           && ( imageOffset == rhs.imageOffset )
28000           && ( imageExtent == rhs.imageExtent );
28001     }
28002 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy28003     bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
28004     {
28005       return !operator==( rhs );
28006     }
28007 #endif
28008 
28009 
28010 
28011   public:
28012     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
28013     uint32_t bufferRowLength = {};
28014     uint32_t bufferImageHeight = {};
28015     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
28016     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
28017     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
28018 
28019   };
28020   static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" );
28021   static_assert( std::is_standard_layout<BufferImageCopy>::value, "struct wrapper is not a standard layout!" );
28022 
28023   struct BufferMemoryBarrier
28024   {
28025     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
28026 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28027     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
28028                                               VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
28029                                               uint32_t srcQueueFamilyIndex_ = {},
28030                                               uint32_t dstQueueFamilyIndex_ = {},
28031                                               VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
28032                                               VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
28033                                               VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
28034       : srcAccessMask( srcAccessMask_ )
28035       , dstAccessMask( dstAccessMask_ )
28036       , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
28037       , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
28038       , buffer( buffer_ )
28039       , offset( offset_ )
28040       , size( size_ )
28041     {}
28042 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier28043     BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
28044     {
28045       memcpy( &pNext, &rhs.pNext, sizeof( BufferMemoryBarrier ) - offsetof( BufferMemoryBarrier, pNext ) );
28046       return *this;
28047     }
28048 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28049     BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
28050     {
28051       *this = rhs;
28052     }
28053 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier28054     BufferMemoryBarrier& operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
28055     {
28056       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>(&rhs);
28057       return *this;
28058     }
28059 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28060     BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28061     {
28062       pNext = pNext_;
28063       return *this;
28064     }
28065 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28066     BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
28067     {
28068       srcAccessMask = srcAccessMask_;
28069       return *this;
28070     }
28071 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28072     BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
28073     {
28074       dstAccessMask = dstAccessMask_;
28075       return *this;
28076     }
28077 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28078     BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
28079     {
28080       srcQueueFamilyIndex = srcQueueFamilyIndex_;
28081       return *this;
28082     }
28083 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28084     BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
28085     {
28086       dstQueueFamilyIndex = dstQueueFamilyIndex_;
28087       return *this;
28088     }
28089 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28090     BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28091     {
28092       buffer = buffer_;
28093       return *this;
28094     }
28095 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28096     BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
28097     {
28098       offset = offset_;
28099       return *this;
28100     }
28101 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier28102     BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
28103     {
28104       size = size_;
28105       return *this;
28106     }
28107 
28108 
operator VkBufferMemoryBarrier const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier28109     operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
28110     {
28111       return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
28112     }
28113 
operator VkBufferMemoryBarrier&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier28114     operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
28115     {
28116       return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
28117     }
28118 
28119 
28120 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28121     auto operator<=>( BufferMemoryBarrier const& ) const = default;
28122 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier28123     bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
28124     {
28125       return ( sType == rhs.sType )
28126           && ( pNext == rhs.pNext )
28127           && ( srcAccessMask == rhs.srcAccessMask )
28128           && ( dstAccessMask == rhs.dstAccessMask )
28129           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
28130           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
28131           && ( buffer == rhs.buffer )
28132           && ( offset == rhs.offset )
28133           && ( size == rhs.size );
28134     }
28135 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier28136     bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
28137     {
28138       return !operator==( rhs );
28139     }
28140 #endif
28141 
28142 
28143 
28144   public:
28145     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
28146     const void* pNext = {};
28147     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
28148     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
28149     uint32_t srcQueueFamilyIndex = {};
28150     uint32_t dstQueueFamilyIndex = {};
28151     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28152     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
28153     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
28154 
28155   };
28156   static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" );
28157   static_assert( std::is_standard_layout<BufferMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
28158 
28159   template <>
28160   struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
28161   {
28162     using Type = BufferMemoryBarrier;
28163   };
28164 
28165   struct BufferMemoryRequirementsInfo2
28166   {
28167     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
28168 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228169     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT
28170       : buffer( buffer_ )
28171     {}
28172 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228173     BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
28174     {
28175       memcpy( &pNext, &rhs.pNext, sizeof( BufferMemoryRequirementsInfo2 ) - offsetof( BufferMemoryRequirementsInfo2, pNext ) );
28176       return *this;
28177     }
28178 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228179     BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
28180     {
28181       *this = rhs;
28182     }
28183 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228184     BufferMemoryRequirementsInfo2& operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
28185     {
28186       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>(&rhs);
28187       return *this;
28188     }
28189 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228190     BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28191     {
28192       pNext = pNext_;
28193       return *this;
28194     }
28195 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228196     BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28197     {
28198       buffer = buffer_;
28199       return *this;
28200     }
28201 
28202 
operator VkBufferMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228203     operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
28204     {
28205       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
28206     }
28207 
operator VkBufferMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228208     operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
28209     {
28210       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
28211     }
28212 
28213 
28214 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28215     auto operator<=>( BufferMemoryRequirementsInfo2 const& ) const = default;
28216 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228217     bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
28218     {
28219       return ( sType == rhs.sType )
28220           && ( pNext == rhs.pNext )
28221           && ( buffer == rhs.buffer );
28222     }
28223 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo228224     bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
28225     {
28226       return !operator==( rhs );
28227     }
28228 #endif
28229 
28230 
28231 
28232   public:
28233     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
28234     const void* pNext = {};
28235     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28236 
28237   };
28238   static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
28239   static_assert( std::is_standard_layout<BufferMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
28240 
28241   template <>
28242   struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
28243   {
28244     using Type = BufferMemoryRequirementsInfo2;
28245   };
28246 
28247   struct BufferOpaqueCaptureAddressCreateInfo
28248   {
28249     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
28250 
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28251     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( uint64_t opaqueCaptureAddress_ = {} ) VULKAN_HPP_NOEXCEPT
28252       : opaqueCaptureAddress( opaqueCaptureAddress_ )
28253     {}
28254 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28255     BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28256     {
28257       memcpy( &pNext, &rhs.pNext, sizeof( BufferOpaqueCaptureAddressCreateInfo ) - offsetof( BufferOpaqueCaptureAddressCreateInfo, pNext ) );
28258       return *this;
28259     }
28260 
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28261     BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28262     {
28263       *this = rhs;
28264     }
28265 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28266     BufferOpaqueCaptureAddressCreateInfo& operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28267     {
28268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>(&rhs);
28269       return *this;
28270     }
28271 
setPNextVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28272     BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28273     {
28274       pNext = pNext_;
28275       return *this;
28276     }
28277 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28278     BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
28279     {
28280       opaqueCaptureAddress = opaqueCaptureAddress_;
28281       return *this;
28282     }
28283 
28284 
operator VkBufferOpaqueCaptureAddressCreateInfo const&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28285     operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT
28286     {
28287       return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>( this );
28288     }
28289 
operator VkBufferOpaqueCaptureAddressCreateInfo&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28290     operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
28291     {
28292       return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>( this );
28293     }
28294 
28295 
28296 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28297     auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const& ) const = default;
28298 #else
operator ==VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28299     bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28300     {
28301       return ( sType == rhs.sType )
28302           && ( pNext == rhs.pNext )
28303           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
28304     }
28305 
operator !=VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo28306     bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28307     {
28308       return !operator==( rhs );
28309     }
28310 #endif
28311 
28312 
28313 
28314   public:
28315     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
28316     const void* pNext = {};
28317     uint64_t opaqueCaptureAddress = {};
28318 
28319   };
28320   static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" );
28321   static_assert( std::is_standard_layout<BufferOpaqueCaptureAddressCreateInfo>::value, "struct wrapper is not a standard layout!" );
28322 
28323   template <>
28324   struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
28325   {
28326     using Type = BufferOpaqueCaptureAddressCreateInfo;
28327   };
28328 
28329   struct BufferViewCreateInfo
28330   {
28331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
28332 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28333     VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {},
28334                                                VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
28335                                                VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
28336                                                VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
28337                                                VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT
28338       : flags( flags_ )
28339       , buffer( buffer_ )
28340       , format( format_ )
28341       , offset( offset_ )
28342       , range( range_ )
28343     {}
28344 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo28345     BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28346     {
28347       memcpy( &pNext, &rhs.pNext, sizeof( BufferViewCreateInfo ) - offsetof( BufferViewCreateInfo, pNext ) );
28348       return *this;
28349     }
28350 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28351     BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28352     {
28353       *this = rhs;
28354     }
28355 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo28356     BufferViewCreateInfo& operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28357     {
28358       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>(&rhs);
28359       return *this;
28360     }
28361 
setPNextVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28362     BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28363     {
28364       pNext = pNext_;
28365       return *this;
28366     }
28367 
setFlagsVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28368     BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
28369     {
28370       flags = flags_;
28371       return *this;
28372     }
28373 
setBufferVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28374     BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28375     {
28376       buffer = buffer_;
28377       return *this;
28378     }
28379 
setFormatVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28380     BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
28381     {
28382       format = format_;
28383       return *this;
28384     }
28385 
setOffsetVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28386     BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
28387     {
28388       offset = offset_;
28389       return *this;
28390     }
28391 
setRangeVULKAN_HPP_NAMESPACE::BufferViewCreateInfo28392     BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
28393     {
28394       range = range_;
28395       return *this;
28396     }
28397 
28398 
operator VkBufferViewCreateInfo const&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo28399     operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
28400     {
28401       return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
28402     }
28403 
operator VkBufferViewCreateInfo&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo28404     operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
28405     {
28406       return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
28407     }
28408 
28409 
28410 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28411     auto operator<=>( BufferViewCreateInfo const& ) const = default;
28412 #else
operator ==VULKAN_HPP_NAMESPACE::BufferViewCreateInfo28413     bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28414     {
28415       return ( sType == rhs.sType )
28416           && ( pNext == rhs.pNext )
28417           && ( flags == rhs.flags )
28418           && ( buffer == rhs.buffer )
28419           && ( format == rhs.format )
28420           && ( offset == rhs.offset )
28421           && ( range == rhs.range );
28422     }
28423 
operator !=VULKAN_HPP_NAMESPACE::BufferViewCreateInfo28424     bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28425     {
28426       return !operator==( rhs );
28427     }
28428 #endif
28429 
28430 
28431 
28432   public:
28433     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
28434     const void* pNext = {};
28435     VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
28436     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28437     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
28438     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
28439     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
28440 
28441   };
28442   static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
28443   static_assert( std::is_standard_layout<BufferViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
28444 
28445   template <>
28446   struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
28447   {
28448     using Type = BufferViewCreateInfo;
28449   };
28450 
28451   struct CalibratedTimestampInfoEXT
28452   {
28453     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
28454 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28455     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice ) VULKAN_HPP_NOEXCEPT
28456       : timeDomain( timeDomain_ )
28457     {}
28458 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28459     CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28460     {
28461       memcpy( &pNext, &rhs.pNext, sizeof( CalibratedTimestampInfoEXT ) - offsetof( CalibratedTimestampInfoEXT, pNext ) );
28462       return *this;
28463     }
28464 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28465     CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28466     {
28467       *this = rhs;
28468     }
28469 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28470     CalibratedTimestampInfoEXT& operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28471     {
28472       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>(&rhs);
28473       return *this;
28474     }
28475 
setPNextVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28476     CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28477     {
28478       pNext = pNext_;
28479       return *this;
28480     }
28481 
setTimeDomainVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28482     CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
28483     {
28484       timeDomain = timeDomain_;
28485       return *this;
28486     }
28487 
28488 
operator VkCalibratedTimestampInfoEXT const&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28489     operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT
28490     {
28491       return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
28492     }
28493 
operator VkCalibratedTimestampInfoEXT&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28494     operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
28495     {
28496       return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
28497     }
28498 
28499 
28500 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28501     auto operator<=>( CalibratedTimestampInfoEXT const& ) const = default;
28502 #else
operator ==VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28503     bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28504     {
28505       return ( sType == rhs.sType )
28506           && ( pNext == rhs.pNext )
28507           && ( timeDomain == rhs.timeDomain );
28508     }
28509 
operator !=VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT28510     bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28511     {
28512       return !operator==( rhs );
28513     }
28514 #endif
28515 
28516 
28517 
28518   public:
28519     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
28520     const void* pNext = {};
28521     VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
28522 
28523   };
28524   static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" );
28525   static_assert( std::is_standard_layout<CalibratedTimestampInfoEXT>::value, "struct wrapper is not a standard layout!" );
28526 
28527   template <>
28528   struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
28529   {
28530     using Type = CalibratedTimestampInfoEXT;
28531   };
28532 
28533   struct CheckpointDataNV
28534   {
28535     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
28536 
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV28537     VULKAN_HPP_CONSTEXPR CheckpointDataNV( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe,
28538                                            void* pCheckpointMarker_ = {} ) VULKAN_HPP_NOEXCEPT
28539       : stage( stage_ )
28540       , pCheckpointMarker( pCheckpointMarker_ )
28541     {}
28542 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV28543     CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
28544     {
28545       memcpy( &pNext, &rhs.pNext, sizeof( CheckpointDataNV ) - offsetof( CheckpointDataNV, pNext ) );
28546       return *this;
28547     }
28548 
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV28549     CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
28550     {
28551       *this = rhs;
28552     }
28553 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV28554     CheckpointDataNV& operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
28555     {
28556       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>(&rhs);
28557       return *this;
28558     }
28559 
28560 
operator VkCheckpointDataNV const&VULKAN_HPP_NAMESPACE::CheckpointDataNV28561     operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT
28562     {
28563       return *reinterpret_cast<const VkCheckpointDataNV*>( this );
28564     }
28565 
operator VkCheckpointDataNV&VULKAN_HPP_NAMESPACE::CheckpointDataNV28566     operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
28567     {
28568       return *reinterpret_cast<VkCheckpointDataNV*>( this );
28569     }
28570 
28571 
28572 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28573     auto operator<=>( CheckpointDataNV const& ) const = default;
28574 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointDataNV28575     bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28576     {
28577       return ( sType == rhs.sType )
28578           && ( pNext == rhs.pNext )
28579           && ( stage == rhs.stage )
28580           && ( pCheckpointMarker == rhs.pCheckpointMarker );
28581     }
28582 
operator !=VULKAN_HPP_NAMESPACE::CheckpointDataNV28583     bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28584     {
28585       return !operator==( rhs );
28586     }
28587 #endif
28588 
28589 
28590 
28591   public:
28592     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
28593     void* pNext = {};
28594     VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
28595     void* pCheckpointMarker = {};
28596 
28597   };
28598   static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" );
28599   static_assert( std::is_standard_layout<CheckpointDataNV>::value, "struct wrapper is not a standard layout!" );
28600 
28601   template <>
28602   struct CppType<StructureType, StructureType::eCheckpointDataNV>
28603   {
28604     using Type = CheckpointDataNV;
28605   };
28606 
28607   union ClearColorValue
28608   {
ClearColorValue(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)28609     ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const& rhs ) VULKAN_HPP_NOEXCEPT
28610     {
28611       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
28612     }
28613 
ClearColorValue(const std::array<float,4> & float32_={} )28614     ClearColorValue( const std::array<float,4>& float32_ = {} )
28615       : float32( float32_ )
28616     {}
28617 
ClearColorValue(const std::array<int32_t,4> & int32_)28618     ClearColorValue( const std::array<int32_t,4>& int32_ )
28619       : int32( int32_ )
28620     {}
28621 
ClearColorValue(const std::array<uint32_t,4> & uint32_)28622     ClearColorValue( const std::array<uint32_t,4>& uint32_ )
28623       : uint32( uint32_ )
28624     {}
28625 
setFloat32(std::array<float,4> float32_)28626     ClearColorValue & setFloat32( std::array<float,4> float32_ ) VULKAN_HPP_NOEXCEPT
28627     {
28628       float32 = float32_;
28629       return *this;
28630     }
28631 
setInt32(std::array<int32_t,4> int32_)28632     ClearColorValue & setInt32( std::array<int32_t,4> int32_ ) VULKAN_HPP_NOEXCEPT
28633     {
28634       int32 = int32_;
28635       return *this;
28636     }
28637 
setUint32(std::array<uint32_t,4> uint32_)28638     ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ ) VULKAN_HPP_NOEXCEPT
28639     {
28640       uint32 = uint32_;
28641       return *this;
28642     }
28643 
operator =(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)28644     VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT
28645     {
28646       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
28647       return *this;
28648     }
28649 
operator VkClearColorValue const&() const28650     operator VkClearColorValue const&() const
28651     {
28652       return *reinterpret_cast<const VkClearColorValue*>(this);
28653     }
28654 
operator VkClearColorValue&()28655     operator VkClearColorValue &()
28656     {
28657       return *reinterpret_cast<VkClearColorValue*>(this);
28658     }
28659 
28660     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
28661     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
28662     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
28663   };
28664 
28665   struct ClearDepthStencilValue
28666   {
28667 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue28668     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( float depth_ = {},
28669                                                  uint32_t stencil_ = {} ) VULKAN_HPP_NOEXCEPT
28670       : depth( depth_ )
28671       , stencil( stencil_ )
28672     {}
28673 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue28674     ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
28675     {
28676       *this = rhs;
28677     }
28678 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue28679     ClearDepthStencilValue& operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
28680     {
28681       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>(&rhs);
28682       return *this;
28683     }
28684 
setDepthVULKAN_HPP_NAMESPACE::ClearDepthStencilValue28685     ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
28686     {
28687       depth = depth_;
28688       return *this;
28689     }
28690 
setStencilVULKAN_HPP_NAMESPACE::ClearDepthStencilValue28691     ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
28692     {
28693       stencil = stencil_;
28694       return *this;
28695     }
28696 
28697 
operator VkClearDepthStencilValue const&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue28698     operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT
28699     {
28700       return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
28701     }
28702 
operator VkClearDepthStencilValue&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue28703     operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
28704     {
28705       return *reinterpret_cast<VkClearDepthStencilValue*>( this );
28706     }
28707 
28708 
28709 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28710     auto operator<=>( ClearDepthStencilValue const& ) const = default;
28711 #else
operator ==VULKAN_HPP_NAMESPACE::ClearDepthStencilValue28712     bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
28713     {
28714       return ( depth == rhs.depth )
28715           && ( stencil == rhs.stencil );
28716     }
28717 
operator !=VULKAN_HPP_NAMESPACE::ClearDepthStencilValue28718     bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
28719     {
28720       return !operator==( rhs );
28721     }
28722 #endif
28723 
28724 
28725 
28726   public:
28727     float depth = {};
28728     uint32_t stencil = {};
28729 
28730   };
28731   static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" );
28732   static_assert( std::is_standard_layout<ClearDepthStencilValue>::value, "struct wrapper is not a standard layout!" );
28733 
28734   union ClearValue
28735   {
ClearValue(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)28736     ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const& rhs ) VULKAN_HPP_NOEXCEPT
28737     {
28738       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
28739     }
28740 
ClearValue(VULKAN_HPP_NAMESPACE::ClearColorValue color_={} )28741     ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} )
28742       : color( color_ )
28743     {}
28744 
ClearValue(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_)28745     ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ )
28746       : depthStencil( depthStencil_ )
28747     {}
28748 
setColor(VULKAN_HPP_NAMESPACE::ClearColorValue const & color_)28749     ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
28750     {
28751       color = color_;
28752       return *this;
28753     }
28754 
setDepthStencil(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_)28755     ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
28756     {
28757       depthStencil = depthStencil_;
28758       return *this;
28759     }
28760 
operator =(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)28761     VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT
28762     {
28763       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
28764       return *this;
28765     }
28766 
operator VkClearValue const&() const28767     operator VkClearValue const&() const
28768     {
28769       return *reinterpret_cast<const VkClearValue*>(this);
28770     }
28771 
operator VkClearValue&()28772     operator VkClearValue &()
28773     {
28774       return *reinterpret_cast<VkClearValue*>(this);
28775     }
28776 
28777 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
28778     VULKAN_HPP_NAMESPACE::ClearColorValue color;
28779     VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
28780 #else
28781     VkClearColorValue color;
28782     VkClearDepthStencilValue depthStencil;
28783 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
28784   };
28785 
28786   struct ClearAttachment
28787   {
28788 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment28789     ClearAttachment( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
28790                      uint32_t colorAttachment_ = {},
28791                      VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {} ) VULKAN_HPP_NOEXCEPT
28792       : aspectMask( aspectMask_ )
28793       , colorAttachment( colorAttachment_ )
28794       , clearValue( clearValue_ )
28795     {}
28796 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment28797     ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
28798     {
28799       *this = rhs;
28800     }
28801 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment28802     ClearAttachment& operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
28803     {
28804       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>(&rhs);
28805       return *this;
28806     }
28807 
setAspectMaskVULKAN_HPP_NAMESPACE::ClearAttachment28808     ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
28809     {
28810       aspectMask = aspectMask_;
28811       return *this;
28812     }
28813 
setColorAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment28814     ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
28815     {
28816       colorAttachment = colorAttachment_;
28817       return *this;
28818     }
28819 
setClearValueVULKAN_HPP_NAMESPACE::ClearAttachment28820     ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
28821     {
28822       clearValue = clearValue_;
28823       return *this;
28824     }
28825 
28826 
operator VkClearAttachment const&VULKAN_HPP_NAMESPACE::ClearAttachment28827     operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT
28828     {
28829       return *reinterpret_cast<const VkClearAttachment*>( this );
28830     }
28831 
operator VkClearAttachment&VULKAN_HPP_NAMESPACE::ClearAttachment28832     operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
28833     {
28834       return *reinterpret_cast<VkClearAttachment*>( this );
28835     }
28836 
28837 
28838 
28839 
28840   public:
28841     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
28842     uint32_t colorAttachment = {};
28843     VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
28844 
28845   };
28846   static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" );
28847   static_assert( std::is_standard_layout<ClearAttachment>::value, "struct wrapper is not a standard layout!" );
28848 
28849   struct ClearRect
28850   {
28851 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect28852     VULKAN_HPP_CONSTEXPR ClearRect( VULKAN_HPP_NAMESPACE::Rect2D rect_ = {},
28853                                     uint32_t baseArrayLayer_ = {},
28854                                     uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
28855       : rect( rect_ )
28856       , baseArrayLayer( baseArrayLayer_ )
28857       , layerCount( layerCount_ )
28858     {}
28859 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect28860     ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
28861     {
28862       *this = rhs;
28863     }
28864 
operator =VULKAN_HPP_NAMESPACE::ClearRect28865     ClearRect& operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
28866     {
28867       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>(&rhs);
28868       return *this;
28869     }
28870 
setRectVULKAN_HPP_NAMESPACE::ClearRect28871     ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
28872     {
28873       rect = rect_;
28874       return *this;
28875     }
28876 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ClearRect28877     ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
28878     {
28879       baseArrayLayer = baseArrayLayer_;
28880       return *this;
28881     }
28882 
setLayerCountVULKAN_HPP_NAMESPACE::ClearRect28883     ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
28884     {
28885       layerCount = layerCount_;
28886       return *this;
28887     }
28888 
28889 
operator VkClearRect const&VULKAN_HPP_NAMESPACE::ClearRect28890     operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT
28891     {
28892       return *reinterpret_cast<const VkClearRect*>( this );
28893     }
28894 
operator VkClearRect&VULKAN_HPP_NAMESPACE::ClearRect28895     operator VkClearRect &() VULKAN_HPP_NOEXCEPT
28896     {
28897       return *reinterpret_cast<VkClearRect*>( this );
28898     }
28899 
28900 
28901 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28902     auto operator<=>( ClearRect const& ) const = default;
28903 #else
operator ==VULKAN_HPP_NAMESPACE::ClearRect28904     bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
28905     {
28906       return ( rect == rhs.rect )
28907           && ( baseArrayLayer == rhs.baseArrayLayer )
28908           && ( layerCount == rhs.layerCount );
28909     }
28910 
operator !=VULKAN_HPP_NAMESPACE::ClearRect28911     bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
28912     {
28913       return !operator==( rhs );
28914     }
28915 #endif
28916 
28917 
28918 
28919   public:
28920     VULKAN_HPP_NAMESPACE::Rect2D rect = {};
28921     uint32_t baseArrayLayer = {};
28922     uint32_t layerCount = {};
28923 
28924   };
28925   static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" );
28926   static_assert( std::is_standard_layout<ClearRect>::value, "struct wrapper is not a standard layout!" );
28927 
28928   struct CoarseSampleLocationNV
28929   {
28930 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28931     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( uint32_t pixelX_ = {},
28932                                                  uint32_t pixelY_ = {},
28933                                                  uint32_t sample_ = {} ) VULKAN_HPP_NOEXCEPT
28934       : pixelX( pixelX_ )
28935       , pixelY( pixelY_ )
28936       , sample( sample_ )
28937     {}
28938 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28939     CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
28940     {
28941       *this = rhs;
28942     }
28943 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28944     CoarseSampleLocationNV& operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
28945     {
28946       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>(&rhs);
28947       return *this;
28948     }
28949 
setPixelXVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28950     CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
28951     {
28952       pixelX = pixelX_;
28953       return *this;
28954     }
28955 
setPixelYVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28956     CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
28957     {
28958       pixelY = pixelY_;
28959       return *this;
28960     }
28961 
setSampleVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28962     CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
28963     {
28964       sample = sample_;
28965       return *this;
28966     }
28967 
28968 
operator VkCoarseSampleLocationNV const&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28969     operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT
28970     {
28971       return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
28972     }
28973 
operator VkCoarseSampleLocationNV&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28974     operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
28975     {
28976       return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
28977     }
28978 
28979 
28980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28981     auto operator<=>( CoarseSampleLocationNV const& ) const = default;
28982 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28983     bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28984     {
28985       return ( pixelX == rhs.pixelX )
28986           && ( pixelY == rhs.pixelY )
28987           && ( sample == rhs.sample );
28988     }
28989 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV28990     bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28991     {
28992       return !operator==( rhs );
28993     }
28994 #endif
28995 
28996 
28997 
28998   public:
28999     uint32_t pixelX = {};
29000     uint32_t pixelY = {};
29001     uint32_t sample = {};
29002 
29003   };
29004   static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" );
29005   static_assert( std::is_standard_layout<CoarseSampleLocationNV>::value, "struct wrapper is not a standard layout!" );
29006 
29007   struct CoarseSampleOrderCustomNV
29008   {
29009 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29010     VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations,
29011                                                     uint32_t sampleCount_ = {},
29012                                                     uint32_t sampleLocationCount_ = {},
29013                                                     const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT
29014       : shadingRate( shadingRate_ )
29015       , sampleCount( sampleCount_ )
29016       , sampleLocationCount( sampleLocationCount_ )
29017       , pSampleLocations( pSampleLocations_ )
29018     {}
29019 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29020     CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
29021     {
29022       *this = rhs;
29023     }
29024 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29025     CoarseSampleOrderCustomNV& operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
29026     {
29027       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>(&rhs);
29028       return *this;
29029     }
29030 
setShadingRateVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29031     CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
29032     {
29033       shadingRate = shadingRate_;
29034       return *this;
29035     }
29036 
setSampleCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29037     CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
29038     {
29039       sampleCount = sampleCount_;
29040       return *this;
29041     }
29042 
setSampleLocationCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29043     CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
29044     {
29045       sampleLocationCount = sampleLocationCount_;
29046       return *this;
29047     }
29048 
setPSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29049     CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
29050     {
29051       pSampleLocations = pSampleLocations_;
29052       return *this;
29053     }
29054 
29055 
operator VkCoarseSampleOrderCustomNV const&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29056     operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT
29057     {
29058       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
29059     }
29060 
operator VkCoarseSampleOrderCustomNV&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29061     operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
29062     {
29063       return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
29064     }
29065 
29066 
29067 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29068     auto operator<=>( CoarseSampleOrderCustomNV const& ) const = default;
29069 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29070     bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
29071     {
29072       return ( shadingRate == rhs.shadingRate )
29073           && ( sampleCount == rhs.sampleCount )
29074           && ( sampleLocationCount == rhs.sampleLocationCount )
29075           && ( pSampleLocations == rhs.pSampleLocations );
29076     }
29077 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV29078     bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
29079     {
29080       return !operator==( rhs );
29081     }
29082 #endif
29083 
29084 
29085 
29086   public:
29087     VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
29088     uint32_t sampleCount = {};
29089     uint32_t sampleLocationCount = {};
29090     const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {};
29091 
29092   };
29093   static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" );
29094   static_assert( std::is_standard_layout<CoarseSampleOrderCustomNV>::value, "struct wrapper is not a standard layout!" );
29095 
29096   struct CommandBufferAllocateInfo
29097   {
29098     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
29099 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29100     VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {},
29101                                                     VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary,
29102                                                     uint32_t commandBufferCount_ = {} ) VULKAN_HPP_NOEXCEPT
29103       : commandPool( commandPool_ )
29104       , level( level_ )
29105       , commandBufferCount( commandBufferCount_ )
29106     {}
29107 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29108     CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29109     {
29110       memcpy( &pNext, &rhs.pNext, sizeof( CommandBufferAllocateInfo ) - offsetof( CommandBufferAllocateInfo, pNext ) );
29111       return *this;
29112     }
29113 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29114     CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29115     {
29116       *this = rhs;
29117     }
29118 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29119     CommandBufferAllocateInfo& operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29120     {
29121       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>(&rhs);
29122       return *this;
29123     }
29124 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29125     CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29126     {
29127       pNext = pNext_;
29128       return *this;
29129     }
29130 
setCommandPoolVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29131     CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
29132     {
29133       commandPool = commandPool_;
29134       return *this;
29135     }
29136 
setLevelVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29137     CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
29138     {
29139       level = level_;
29140       return *this;
29141     }
29142 
setCommandBufferCountVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29143     CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
29144     {
29145       commandBufferCount = commandBufferCount_;
29146       return *this;
29147     }
29148 
29149 
operator VkCommandBufferAllocateInfo const&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29150     operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
29151     {
29152       return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
29153     }
29154 
operator VkCommandBufferAllocateInfo&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29155     operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
29156     {
29157       return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
29158     }
29159 
29160 
29161 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29162     auto operator<=>( CommandBufferAllocateInfo const& ) const = default;
29163 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29164     bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29165     {
29166       return ( sType == rhs.sType )
29167           && ( pNext == rhs.pNext )
29168           && ( commandPool == rhs.commandPool )
29169           && ( level == rhs.level )
29170           && ( commandBufferCount == rhs.commandBufferCount );
29171     }
29172 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo29173     bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29174     {
29175       return !operator==( rhs );
29176     }
29177 #endif
29178 
29179 
29180 
29181   public:
29182     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
29183     const void* pNext = {};
29184     VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
29185     VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
29186     uint32_t commandBufferCount = {};
29187 
29188   };
29189   static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" );
29190   static_assert( std::is_standard_layout<CommandBufferAllocateInfo>::value, "struct wrapper is not a standard layout!" );
29191 
29192   template <>
29193   struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
29194   {
29195     using Type = CommandBufferAllocateInfo;
29196   };
29197 
29198   struct CommandBufferInheritanceInfo
29199   {
29200     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
29201 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29202     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
29203                                                        uint32_t subpass_ = {},
29204                                                        VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {},
29205                                                        VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {},
29206                                                        VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {},
29207                                                        VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {} ) VULKAN_HPP_NOEXCEPT
29208       : renderPass( renderPass_ )
29209       , subpass( subpass_ )
29210       , framebuffer( framebuffer_ )
29211       , occlusionQueryEnable( occlusionQueryEnable_ )
29212       , queryFlags( queryFlags_ )
29213       , pipelineStatistics( pipelineStatistics_ )
29214     {}
29215 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29216     CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29217     {
29218       memcpy( &pNext, &rhs.pNext, sizeof( CommandBufferInheritanceInfo ) - offsetof( CommandBufferInheritanceInfo, pNext ) );
29219       return *this;
29220     }
29221 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29222     CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29223     {
29224       *this = rhs;
29225     }
29226 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29227     CommandBufferInheritanceInfo& operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29228     {
29229       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>(&rhs);
29230       return *this;
29231     }
29232 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29233     CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29234     {
29235       pNext = pNext_;
29236       return *this;
29237     }
29238 
setRenderPassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29239     CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
29240     {
29241       renderPass = renderPass_;
29242       return *this;
29243     }
29244 
setSubpassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29245     CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
29246     {
29247       subpass = subpass_;
29248       return *this;
29249     }
29250 
setFramebufferVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29251     CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
29252     {
29253       framebuffer = framebuffer_;
29254       return *this;
29255     }
29256 
setOcclusionQueryEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29257     CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
29258     {
29259       occlusionQueryEnable = occlusionQueryEnable_;
29260       return *this;
29261     }
29262 
setQueryFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29263     CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
29264     {
29265       queryFlags = queryFlags_;
29266       return *this;
29267     }
29268 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29269     CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
29270     {
29271       pipelineStatistics = pipelineStatistics_;
29272       return *this;
29273     }
29274 
29275 
operator VkCommandBufferInheritanceInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29276     operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT
29277     {
29278       return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
29279     }
29280 
operator VkCommandBufferInheritanceInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29281     operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
29282     {
29283       return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
29284     }
29285 
29286 
29287 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29288     auto operator<=>( CommandBufferInheritanceInfo const& ) const = default;
29289 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29290     bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29291     {
29292       return ( sType == rhs.sType )
29293           && ( pNext == rhs.pNext )
29294           && ( renderPass == rhs.renderPass )
29295           && ( subpass == rhs.subpass )
29296           && ( framebuffer == rhs.framebuffer )
29297           && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
29298           && ( queryFlags == rhs.queryFlags )
29299           && ( pipelineStatistics == rhs.pipelineStatistics );
29300     }
29301 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo29302     bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29303     {
29304       return !operator==( rhs );
29305     }
29306 #endif
29307 
29308 
29309 
29310   public:
29311     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
29312     const void* pNext = {};
29313     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
29314     uint32_t subpass = {};
29315     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
29316     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
29317     VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
29318     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
29319 
29320   };
29321   static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" );
29322   static_assert( std::is_standard_layout<CommandBufferInheritanceInfo>::value, "struct wrapper is not a standard layout!" );
29323 
29324   template <>
29325   struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
29326   {
29327     using Type = CommandBufferInheritanceInfo;
29328   };
29329 
29330   struct CommandBufferBeginInfo
29331   {
29332     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
29333 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29334     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {},
29335                                                  const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {} ) VULKAN_HPP_NOEXCEPT
29336       : flags( flags_ )
29337       , pInheritanceInfo( pInheritanceInfo_ )
29338     {}
29339 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29340     CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29341     {
29342       memcpy( &pNext, &rhs.pNext, sizeof( CommandBufferBeginInfo ) - offsetof( CommandBufferBeginInfo, pNext ) );
29343       return *this;
29344     }
29345 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29346     CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29347     {
29348       *this = rhs;
29349     }
29350 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29351     CommandBufferBeginInfo& operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29352     {
29353       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>(&rhs);
29354       return *this;
29355     }
29356 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29357     CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29358     {
29359       pNext = pNext_;
29360       return *this;
29361     }
29362 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29363     CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
29364     {
29365       flags = flags_;
29366       return *this;
29367     }
29368 
setPInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29369     CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
29370     {
29371       pInheritanceInfo = pInheritanceInfo_;
29372       return *this;
29373     }
29374 
29375 
operator VkCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29376     operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
29377     {
29378       return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
29379     }
29380 
operator VkCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29381     operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
29382     {
29383       return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
29384     }
29385 
29386 
29387 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29388     auto operator<=>( CommandBufferBeginInfo const& ) const = default;
29389 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29390     bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29391     {
29392       return ( sType == rhs.sType )
29393           && ( pNext == rhs.pNext )
29394           && ( flags == rhs.flags )
29395           && ( pInheritanceInfo == rhs.pInheritanceInfo );
29396     }
29397 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo29398     bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29399     {
29400       return !operator==( rhs );
29401     }
29402 #endif
29403 
29404 
29405 
29406   public:
29407     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
29408     const void* pNext = {};
29409     VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
29410     const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {};
29411 
29412   };
29413   static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" );
29414   static_assert( std::is_standard_layout<CommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
29415 
29416   template <>
29417   struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
29418   {
29419     using Type = CommandBufferBeginInfo;
29420   };
29421 
29422   struct CommandBufferInheritanceConditionalRenderingInfoEXT
29423   {
29424     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
29425 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29426     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {} ) VULKAN_HPP_NOEXCEPT
29427       : conditionalRenderingEnable( conditionalRenderingEnable_ )
29428     {}
29429 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29430     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29431     {
29432       memcpy( &pNext, &rhs.pNext, sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) - offsetof( CommandBufferInheritanceConditionalRenderingInfoEXT, pNext ) );
29433       return *this;
29434     }
29435 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29436     CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29437     {
29438       *this = rhs;
29439     }
29440 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29441     CommandBufferInheritanceConditionalRenderingInfoEXT& operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29442     {
29443       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>(&rhs);
29444       return *this;
29445     }
29446 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29447     CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29448     {
29449       pNext = pNext_;
29450       return *this;
29451     }
29452 
setConditionalRenderingEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29453     CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
29454     {
29455       conditionalRenderingEnable = conditionalRenderingEnable_;
29456       return *this;
29457     }
29458 
29459 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29460     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT
29461     {
29462       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
29463     }
29464 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29465     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
29466     {
29467       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
29468     }
29469 
29470 
29471 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29472     auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const& ) const = default;
29473 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29474     bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29475     {
29476       return ( sType == rhs.sType )
29477           && ( pNext == rhs.pNext )
29478           && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
29479     }
29480 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT29481     bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29482     {
29483       return !operator==( rhs );
29484     }
29485 #endif
29486 
29487 
29488 
29489   public:
29490     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
29491     const void* pNext = {};
29492     VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
29493 
29494   };
29495   static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" );
29496   static_assert( std::is_standard_layout<CommandBufferInheritanceConditionalRenderingInfoEXT>::value, "struct wrapper is not a standard layout!" );
29497 
29498   template <>
29499   struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
29500   {
29501     using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
29502   };
29503 
29504   struct CommandBufferInheritanceRenderPassTransformInfoQCOM
29505   {
29506     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
29507 
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29508     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
29509                                                                               VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {} ) VULKAN_HPP_NOEXCEPT
29510       : transform( transform_ )
29511       , renderArea( renderArea_ )
29512     {}
29513 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29514     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
29515     {
29516       memcpy( &pNext, &rhs.pNext, sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) - offsetof( CommandBufferInheritanceRenderPassTransformInfoQCOM, pNext ) );
29517       return *this;
29518     }
29519 
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29520     CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
29521     {
29522       *this = rhs;
29523     }
29524 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29525     CommandBufferInheritanceRenderPassTransformInfoQCOM& operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
29526     {
29527       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>(&rhs);
29528       return *this;
29529     }
29530 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29531     CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
29532     {
29533       pNext = pNext_;
29534       return *this;
29535     }
29536 
setTransformVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29537     CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
29538     {
29539       transform = transform_;
29540       return *this;
29541     }
29542 
setRenderAreaVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29543     CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
29544     {
29545       renderArea = renderArea_;
29546       return *this;
29547     }
29548 
29549 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29550     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
29551     {
29552       return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
29553     }
29554 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29555     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
29556     {
29557       return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
29558     }
29559 
29560 
29561 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29562     auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const& ) const = default;
29563 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29564     bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
29565     {
29566       return ( sType == rhs.sType )
29567           && ( pNext == rhs.pNext )
29568           && ( transform == rhs.transform )
29569           && ( renderArea == rhs.renderArea );
29570     }
29571 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM29572     bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
29573     {
29574       return !operator==( rhs );
29575     }
29576 #endif
29577 
29578 
29579 
29580   public:
29581     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
29582     void* pNext = {};
29583     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
29584     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
29585 
29586   };
29587   static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), "struct and wrapper have different size!" );
29588   static_assert( std::is_standard_layout<CommandBufferInheritanceRenderPassTransformInfoQCOM>::value, "struct wrapper is not a standard layout!" );
29589 
29590   template <>
29591   struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
29592   {
29593     using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
29594   };
29595 
29596   struct CommandPoolCreateInfo
29597   {
29598     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
29599 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29600     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {},
29601                                                 uint32_t queueFamilyIndex_ = {} ) VULKAN_HPP_NOEXCEPT
29602       : flags( flags_ )
29603       , queueFamilyIndex( queueFamilyIndex_ )
29604     {}
29605 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29606     CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29607     {
29608       memcpy( &pNext, &rhs.pNext, sizeof( CommandPoolCreateInfo ) - offsetof( CommandPoolCreateInfo, pNext ) );
29609       return *this;
29610     }
29611 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29612     CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29613     {
29614       *this = rhs;
29615     }
29616 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29617     CommandPoolCreateInfo& operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29618     {
29619       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>(&rhs);
29620       return *this;
29621     }
29622 
setPNextVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29623     CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29624     {
29625       pNext = pNext_;
29626       return *this;
29627     }
29628 
setFlagsVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29629     CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
29630     {
29631       flags = flags_;
29632       return *this;
29633     }
29634 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29635     CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
29636     {
29637       queueFamilyIndex = queueFamilyIndex_;
29638       return *this;
29639     }
29640 
29641 
operator VkCommandPoolCreateInfo const&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29642     operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29643     {
29644       return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
29645     }
29646 
operator VkCommandPoolCreateInfo&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29647     operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
29648     {
29649       return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
29650     }
29651 
29652 
29653 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29654     auto operator<=>( CommandPoolCreateInfo const& ) const = default;
29655 #else
operator ==VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29656     bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29657     {
29658       return ( sType == rhs.sType )
29659           && ( pNext == rhs.pNext )
29660           && ( flags == rhs.flags )
29661           && ( queueFamilyIndex == rhs.queueFamilyIndex );
29662     }
29663 
operator !=VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo29664     bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29665     {
29666       return !operator==( rhs );
29667     }
29668 #endif
29669 
29670 
29671 
29672   public:
29673     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
29674     const void* pNext = {};
29675     VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
29676     uint32_t queueFamilyIndex = {};
29677 
29678   };
29679   static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" );
29680   static_assert( std::is_standard_layout<CommandPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
29681 
29682   template <>
29683   struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
29684   {
29685     using Type = CommandPoolCreateInfo;
29686   };
29687 
29688   struct SpecializationMapEntry
29689   {
29690 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry29691     VULKAN_HPP_CONSTEXPR SpecializationMapEntry( uint32_t constantID_ = {},
29692                                                  uint32_t offset_ = {},
29693                                                  size_t size_ = {} ) VULKAN_HPP_NOEXCEPT
29694       : constantID( constantID_ )
29695       , offset( offset_ )
29696       , size( size_ )
29697     {}
29698 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry29699     SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
29700     {
29701       *this = rhs;
29702     }
29703 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry29704     SpecializationMapEntry& operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
29705     {
29706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>(&rhs);
29707       return *this;
29708     }
29709 
setConstantIDVULKAN_HPP_NAMESPACE::SpecializationMapEntry29710     SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
29711     {
29712       constantID = constantID_;
29713       return *this;
29714     }
29715 
setOffsetVULKAN_HPP_NAMESPACE::SpecializationMapEntry29716     SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
29717     {
29718       offset = offset_;
29719       return *this;
29720     }
29721 
setSizeVULKAN_HPP_NAMESPACE::SpecializationMapEntry29722     SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
29723     {
29724       size = size_;
29725       return *this;
29726     }
29727 
29728 
operator VkSpecializationMapEntry const&VULKAN_HPP_NAMESPACE::SpecializationMapEntry29729     operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT
29730     {
29731       return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
29732     }
29733 
operator VkSpecializationMapEntry&VULKAN_HPP_NAMESPACE::SpecializationMapEntry29734     operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
29735     {
29736       return *reinterpret_cast<VkSpecializationMapEntry*>( this );
29737     }
29738 
29739 
29740 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29741     auto operator<=>( SpecializationMapEntry const& ) const = default;
29742 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationMapEntry29743     bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
29744     {
29745       return ( constantID == rhs.constantID )
29746           && ( offset == rhs.offset )
29747           && ( size == rhs.size );
29748     }
29749 
operator !=VULKAN_HPP_NAMESPACE::SpecializationMapEntry29750     bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
29751     {
29752       return !operator==( rhs );
29753     }
29754 #endif
29755 
29756 
29757 
29758   public:
29759     uint32_t constantID = {};
29760     uint32_t offset = {};
29761     size_t size = {};
29762 
29763   };
29764   static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" );
29765   static_assert( std::is_standard_layout<SpecializationMapEntry>::value, "struct wrapper is not a standard layout!" );
29766 
29767   struct SpecializationInfo
29768   {
29769 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo29770     VULKAN_HPP_CONSTEXPR SpecializationInfo( uint32_t mapEntryCount_ = {},
29771                                              const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {},
29772                                              size_t dataSize_ = {},
29773                                              const void* pData_ = {} ) VULKAN_HPP_NOEXCEPT
29774       : mapEntryCount( mapEntryCount_ )
29775       , pMapEntries( pMapEntries_ )
29776       , dataSize( dataSize_ )
29777       , pData( pData_ )
29778     {}
29779 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo29780     SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29781     {
29782       *this = rhs;
29783     }
29784 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo29785     SpecializationInfo& operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29786     {
29787       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>(&rhs);
29788       return *this;
29789     }
29790 
setMapEntryCountVULKAN_HPP_NAMESPACE::SpecializationInfo29791     SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
29792     {
29793       mapEntryCount = mapEntryCount_;
29794       return *this;
29795     }
29796 
setPMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo29797     SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT
29798     {
29799       pMapEntries = pMapEntries_;
29800       return *this;
29801     }
29802 
setDataSizeVULKAN_HPP_NAMESPACE::SpecializationInfo29803     SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
29804     {
29805       dataSize = dataSize_;
29806       return *this;
29807     }
29808 
setPDataVULKAN_HPP_NAMESPACE::SpecializationInfo29809     SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
29810     {
29811       pData = pData_;
29812       return *this;
29813     }
29814 
29815 
operator VkSpecializationInfo const&VULKAN_HPP_NAMESPACE::SpecializationInfo29816     operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT
29817     {
29818       return *reinterpret_cast<const VkSpecializationInfo*>( this );
29819     }
29820 
operator VkSpecializationInfo&VULKAN_HPP_NAMESPACE::SpecializationInfo29821     operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
29822     {
29823       return *reinterpret_cast<VkSpecializationInfo*>( this );
29824     }
29825 
29826 
29827 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29828     auto operator<=>( SpecializationInfo const& ) const = default;
29829 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationInfo29830     bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29831     {
29832       return ( mapEntryCount == rhs.mapEntryCount )
29833           && ( pMapEntries == rhs.pMapEntries )
29834           && ( dataSize == rhs.dataSize )
29835           && ( pData == rhs.pData );
29836     }
29837 
operator !=VULKAN_HPP_NAMESPACE::SpecializationInfo29838     bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29839     {
29840       return !operator==( rhs );
29841     }
29842 #endif
29843 
29844 
29845 
29846   public:
29847     uint32_t mapEntryCount = {};
29848     const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {};
29849     size_t dataSize = {};
29850     const void* pData = {};
29851 
29852   };
29853   static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" );
29854   static_assert( std::is_standard_layout<SpecializationInfo>::value, "struct wrapper is not a standard layout!" );
29855 
29856   struct PipelineShaderStageCreateInfo
29857   {
29858     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
29859 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29860     VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {},
29861                                                         VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex,
29862                                                         VULKAN_HPP_NAMESPACE::ShaderModule module_ = {},
29863                                                         const char* pName_ = {},
29864                                                         const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ = {} ) VULKAN_HPP_NOEXCEPT
29865       : flags( flags_ )
29866       , stage( stage_ )
29867       , module( module_ )
29868       , pName( pName_ )
29869       , pSpecializationInfo( pSpecializationInfo_ )
29870     {}
29871 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29872     PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29873     {
29874       memcpy( &pNext, &rhs.pNext, sizeof( PipelineShaderStageCreateInfo ) - offsetof( PipelineShaderStageCreateInfo, pNext ) );
29875       return *this;
29876     }
29877 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29878     PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29879     {
29880       *this = rhs;
29881     }
29882 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29883     PipelineShaderStageCreateInfo& operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29884     {
29885       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>(&rhs);
29886       return *this;
29887     }
29888 
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29889     PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29890     {
29891       pNext = pNext_;
29892       return *this;
29893     }
29894 
setFlagsVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29895     PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
29896     {
29897       flags = flags_;
29898       return *this;
29899     }
29900 
setStageVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29901     PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
29902     {
29903       stage = stage_;
29904       return *this;
29905     }
29906 
setModuleVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29907     PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
29908     {
29909       module = module_;
29910       return *this;
29911     }
29912 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29913     PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT
29914     {
29915       pName = pName_;
29916       return *this;
29917     }
29918 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29919     PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
29920     {
29921       pSpecializationInfo = pSpecializationInfo_;
29922       return *this;
29923     }
29924 
29925 
operator VkPipelineShaderStageCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29926     operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29927     {
29928       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
29929     }
29930 
operator VkPipelineShaderStageCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29931     operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
29932     {
29933       return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
29934     }
29935 
29936 
29937 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29938     auto operator<=>( PipelineShaderStageCreateInfo const& ) const = default;
29939 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29940     bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29941     {
29942       return ( sType == rhs.sType )
29943           && ( pNext == rhs.pNext )
29944           && ( flags == rhs.flags )
29945           && ( stage == rhs.stage )
29946           && ( module == rhs.module )
29947           && ( pName == rhs.pName )
29948           && ( pSpecializationInfo == rhs.pSpecializationInfo );
29949     }
29950 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo29951     bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29952     {
29953       return !operator==( rhs );
29954     }
29955 #endif
29956 
29957 
29958 
29959   public:
29960     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
29961     const void* pNext = {};
29962     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
29963     VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
29964     VULKAN_HPP_NAMESPACE::ShaderModule module = {};
29965     const char* pName = {};
29966     const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {};
29967 
29968   };
29969   static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" );
29970   static_assert( std::is_standard_layout<PipelineShaderStageCreateInfo>::value, "struct wrapper is not a standard layout!" );
29971 
29972   template <>
29973   struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
29974   {
29975     using Type = PipelineShaderStageCreateInfo;
29976   };
29977 
29978   struct ComputePipelineCreateInfo
29979   {
29980     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
29981 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo29982     VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
29983                                                     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {},
29984                                                     VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
29985                                                     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
29986                                                     int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT
29987       : flags( flags_ )
29988       , stage( stage_ )
29989       , layout( layout_ )
29990       , basePipelineHandle( basePipelineHandle_ )
29991       , basePipelineIndex( basePipelineIndex_ )
29992     {}
29993 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo29994     ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29995     {
29996       memcpy( &pNext, &rhs.pNext, sizeof( ComputePipelineCreateInfo ) - offsetof( ComputePipelineCreateInfo, pNext ) );
29997       return *this;
29998     }
29999 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30000     ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30001     {
30002       *this = rhs;
30003     }
30004 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30005     ComputePipelineCreateInfo& operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30006     {
30007       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>(&rhs);
30008       return *this;
30009     }
30010 
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30011     ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30012     {
30013       pNext = pNext_;
30014       return *this;
30015     }
30016 
setFlagsVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30017     ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30018     {
30019       flags = flags_;
30020       return *this;
30021     }
30022 
setStageVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30023     ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
30024     {
30025       stage = stage_;
30026       return *this;
30027     }
30028 
setLayoutVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30029     ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
30030     {
30031       layout = layout_;
30032       return *this;
30033     }
30034 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30035     ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
30036     {
30037       basePipelineHandle = basePipelineHandle_;
30038       return *this;
30039     }
30040 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30041     ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
30042     {
30043       basePipelineIndex = basePipelineIndex_;
30044       return *this;
30045     }
30046 
30047 
operator VkComputePipelineCreateInfo const&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30048     operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30049     {
30050       return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
30051     }
30052 
operator VkComputePipelineCreateInfo&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30053     operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
30054     {
30055       return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
30056     }
30057 
30058 
30059 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30060     auto operator<=>( ComputePipelineCreateInfo const& ) const = default;
30061 #else
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30062     bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30063     {
30064       return ( sType == rhs.sType )
30065           && ( pNext == rhs.pNext )
30066           && ( flags == rhs.flags )
30067           && ( stage == rhs.stage )
30068           && ( layout == rhs.layout )
30069           && ( basePipelineHandle == rhs.basePipelineHandle )
30070           && ( basePipelineIndex == rhs.basePipelineIndex );
30071     }
30072 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo30073     bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30074     {
30075       return !operator==( rhs );
30076     }
30077 #endif
30078 
30079 
30080 
30081   public:
30082     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
30083     const void* pNext = {};
30084     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
30085     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
30086     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
30087     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
30088     int32_t basePipelineIndex = {};
30089 
30090   };
30091   static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" );
30092   static_assert( std::is_standard_layout<ComputePipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
30093 
30094   template <>
30095   struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
30096   {
30097     using Type = ComputePipelineCreateInfo;
30098   };
30099 
30100   struct ConditionalRenderingBeginInfoEXT
30101   {
30102     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
30103 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30104     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
30105                                                            VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
30106                                                            VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {} ) VULKAN_HPP_NOEXCEPT
30107       : buffer( buffer_ )
30108       , offset( offset_ )
30109       , flags( flags_ )
30110     {}
30111 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30112     ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30113     {
30114       memcpy( &pNext, &rhs.pNext, sizeof( ConditionalRenderingBeginInfoEXT ) - offsetof( ConditionalRenderingBeginInfoEXT, pNext ) );
30115       return *this;
30116     }
30117 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30118     ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30119     {
30120       *this = rhs;
30121     }
30122 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30123     ConditionalRenderingBeginInfoEXT& operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30124     {
30125       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>(&rhs);
30126       return *this;
30127     }
30128 
setPNextVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30129     ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30130     {
30131       pNext = pNext_;
30132       return *this;
30133     }
30134 
setBufferVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30135     ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
30136     {
30137       buffer = buffer_;
30138       return *this;
30139     }
30140 
setOffsetVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30141     ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
30142     {
30143       offset = offset_;
30144       return *this;
30145     }
30146 
setFlagsVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30147     ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
30148     {
30149       flags = flags_;
30150       return *this;
30151     }
30152 
30153 
operator VkConditionalRenderingBeginInfoEXT const&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30154     operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
30155     {
30156       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
30157     }
30158 
operator VkConditionalRenderingBeginInfoEXT&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30159     operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
30160     {
30161       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
30162     }
30163 
30164 
30165 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30166     auto operator<=>( ConditionalRenderingBeginInfoEXT const& ) const = default;
30167 #else
operator ==VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30168     bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
30169     {
30170       return ( sType == rhs.sType )
30171           && ( pNext == rhs.pNext )
30172           && ( buffer == rhs.buffer )
30173           && ( offset == rhs.offset )
30174           && ( flags == rhs.flags );
30175     }
30176 
operator !=VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT30177     bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
30178     {
30179       return !operator==( rhs );
30180     }
30181 #endif
30182 
30183 
30184 
30185   public:
30186     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
30187     const void* pNext = {};
30188     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
30189     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
30190     VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
30191 
30192   };
30193   static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" );
30194   static_assert( std::is_standard_layout<ConditionalRenderingBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
30195 
30196   template <>
30197   struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
30198   {
30199     using Type = ConditionalRenderingBeginInfoEXT;
30200   };
30201 
30202   struct ConformanceVersion
30203   {
30204 
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion30205     VULKAN_HPP_CONSTEXPR ConformanceVersion( uint8_t major_ = {},
30206                                              uint8_t minor_ = {},
30207                                              uint8_t subminor_ = {},
30208                                              uint8_t patch_ = {} ) VULKAN_HPP_NOEXCEPT
30209       : major( major_ )
30210       , minor( minor_ )
30211       , subminor( subminor_ )
30212       , patch( patch_ )
30213     {}
30214 
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion30215     ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
30216     {
30217       *this = rhs;
30218     }
30219 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion30220     ConformanceVersion& operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
30221     {
30222       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>(&rhs);
30223       return *this;
30224     }
30225 
setMajorVULKAN_HPP_NAMESPACE::ConformanceVersion30226     ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
30227     {
30228       major = major_;
30229       return *this;
30230     }
30231 
setMinorVULKAN_HPP_NAMESPACE::ConformanceVersion30232     ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
30233     {
30234       minor = minor_;
30235       return *this;
30236     }
30237 
setSubminorVULKAN_HPP_NAMESPACE::ConformanceVersion30238     ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
30239     {
30240       subminor = subminor_;
30241       return *this;
30242     }
30243 
setPatchVULKAN_HPP_NAMESPACE::ConformanceVersion30244     ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
30245     {
30246       patch = patch_;
30247       return *this;
30248     }
30249 
30250 
operator VkConformanceVersion const&VULKAN_HPP_NAMESPACE::ConformanceVersion30251     operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT
30252     {
30253       return *reinterpret_cast<const VkConformanceVersion*>( this );
30254     }
30255 
operator VkConformanceVersion&VULKAN_HPP_NAMESPACE::ConformanceVersion30256     operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
30257     {
30258       return *reinterpret_cast<VkConformanceVersion*>( this );
30259     }
30260 
30261 
30262 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30263     auto operator<=>( ConformanceVersion const& ) const = default;
30264 #else
operator ==VULKAN_HPP_NAMESPACE::ConformanceVersion30265     bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
30266     {
30267       return ( major == rhs.major )
30268           && ( minor == rhs.minor )
30269           && ( subminor == rhs.subminor )
30270           && ( patch == rhs.patch );
30271     }
30272 
operator !=VULKAN_HPP_NAMESPACE::ConformanceVersion30273     bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
30274     {
30275       return !operator==( rhs );
30276     }
30277 #endif
30278 
30279 
30280 
30281   public:
30282     uint8_t major = {};
30283     uint8_t minor = {};
30284     uint8_t subminor = {};
30285     uint8_t patch = {};
30286 
30287   };
30288   static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" );
30289   static_assert( std::is_standard_layout<ConformanceVersion>::value, "struct wrapper is not a standard layout!" );
30290 
30291   struct CooperativeMatrixPropertiesNV
30292   {
30293     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
30294 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30295     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( uint32_t MSize_ = {},
30296                                                         uint32_t NSize_ = {},
30297                                                         uint32_t KSize_ = {},
30298                                                         VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
30299                                                         VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
30300                                                         VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
30301                                                         VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
30302                                                         VULKAN_HPP_NAMESPACE::ScopeNV scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice ) VULKAN_HPP_NOEXCEPT
30303       : MSize( MSize_ )
30304       , NSize( NSize_ )
30305       , KSize( KSize_ )
30306       , AType( AType_ )
30307       , BType( BType_ )
30308       , CType( CType_ )
30309       , DType( DType_ )
30310       , scope( scope_ )
30311     {}
30312 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30313     CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
30314     {
30315       memcpy( &pNext, &rhs.pNext, sizeof( CooperativeMatrixPropertiesNV ) - offsetof( CooperativeMatrixPropertiesNV, pNext ) );
30316       return *this;
30317     }
30318 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30319     CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
30320     {
30321       *this = rhs;
30322     }
30323 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30324     CooperativeMatrixPropertiesNV& operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
30325     {
30326       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>(&rhs);
30327       return *this;
30328     }
30329 
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30330     CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
30331     {
30332       pNext = pNext_;
30333       return *this;
30334     }
30335 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30336     CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
30337     {
30338       MSize = MSize_;
30339       return *this;
30340     }
30341 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30342     CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
30343     {
30344       NSize = NSize_;
30345       return *this;
30346     }
30347 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30348     CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
30349     {
30350       KSize = KSize_;
30351       return *this;
30352     }
30353 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30354     CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
30355     {
30356       AType = AType_;
30357       return *this;
30358     }
30359 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30360     CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
30361     {
30362       BType = BType_;
30363       return *this;
30364     }
30365 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30366     CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
30367     {
30368       CType = CType_;
30369       return *this;
30370     }
30371 
setDTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30372     CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
30373     {
30374       DType = DType_;
30375       return *this;
30376     }
30377 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30378     CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
30379     {
30380       scope = scope_;
30381       return *this;
30382     }
30383 
30384 
operator VkCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30385     operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
30386     {
30387       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
30388     }
30389 
operator VkCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30390     operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
30391     {
30392       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
30393     }
30394 
30395 
30396 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30397     auto operator<=>( CooperativeMatrixPropertiesNV const& ) const = default;
30398 #else
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30399     bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
30400     {
30401       return ( sType == rhs.sType )
30402           && ( pNext == rhs.pNext )
30403           && ( MSize == rhs.MSize )
30404           && ( NSize == rhs.NSize )
30405           && ( KSize == rhs.KSize )
30406           && ( AType == rhs.AType )
30407           && ( BType == rhs.BType )
30408           && ( CType == rhs.CType )
30409           && ( DType == rhs.DType )
30410           && ( scope == rhs.scope );
30411     }
30412 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV30413     bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
30414     {
30415       return !operator==( rhs );
30416     }
30417 #endif
30418 
30419 
30420 
30421   public:
30422     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
30423     void* pNext = {};
30424     uint32_t MSize = {};
30425     uint32_t NSize = {};
30426     uint32_t KSize = {};
30427     VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
30428     VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
30429     VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
30430     VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
30431     VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice;
30432 
30433   };
30434   static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
30435   static_assert( std::is_standard_layout<CooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
30436 
30437   template <>
30438   struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
30439   {
30440     using Type = CooperativeMatrixPropertiesNV;
30441   };
30442 
30443 #ifdef VK_ENABLE_BETA_EXTENSIONS
30444   struct CopyAccelerationStructureInfoKHR
30445   {
30446     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
30447 
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30448     VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {},
30449                                                            VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
30450                                                            VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone ) VULKAN_HPP_NOEXCEPT
30451       : src( src_ )
30452       , dst( dst_ )
30453       , mode( mode_ )
30454     {}
30455 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30456     CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30457     {
30458       memcpy( &pNext, &rhs.pNext, sizeof( CopyAccelerationStructureInfoKHR ) - offsetof( CopyAccelerationStructureInfoKHR, pNext ) );
30459       return *this;
30460     }
30461 
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30462     CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30463     {
30464       *this = rhs;
30465     }
30466 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30467     CopyAccelerationStructureInfoKHR& operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30468     {
30469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>(&rhs);
30470       return *this;
30471     }
30472 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30473     CopyAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30474     {
30475       pNext = pNext_;
30476       return *this;
30477     }
30478 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30479     CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
30480     {
30481       src = src_;
30482       return *this;
30483     }
30484 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30485     CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
30486     {
30487       dst = dst_;
30488       return *this;
30489     }
30490 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30491     CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
30492     {
30493       mode = mode_;
30494       return *this;
30495     }
30496 
30497 
operator VkCopyAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30498     operator VkCopyAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
30499     {
30500       return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( this );
30501     }
30502 
operator VkCopyAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30503     operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
30504     {
30505       return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR*>( this );
30506     }
30507 
30508 
30509 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30510     auto operator<=>( CopyAccelerationStructureInfoKHR const& ) const = default;
30511 #else
operator ==VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30512     bool operator==( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30513     {
30514       return ( sType == rhs.sType )
30515           && ( pNext == rhs.pNext )
30516           && ( src == rhs.src )
30517           && ( dst == rhs.dst )
30518           && ( mode == rhs.mode );
30519     }
30520 
operator !=VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR30521     bool operator!=( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30522     {
30523       return !operator==( rhs );
30524     }
30525 #endif
30526 
30527 
30528 
30529   public:
30530     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
30531     const void* pNext = {};
30532     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
30533     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
30534     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
30535 
30536   };
30537   static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
30538   static_assert( std::is_standard_layout<CopyAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
30539 
30540   template <>
30541   struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
30542   {
30543     using Type = CopyAccelerationStructureInfoKHR;
30544   };
30545 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
30546 
30547 #ifdef VK_ENABLE_BETA_EXTENSIONS
30548   struct CopyAccelerationStructureToMemoryInfoKHR
30549   {
30550     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
30551 
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30552     CopyAccelerationStructureToMemoryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {},
30553                                               VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {},
30554                                               VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone ) VULKAN_HPP_NOEXCEPT
30555       : src( src_ )
30556       , dst( dst_ )
30557       , mode( mode_ )
30558     {}
30559 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30560     CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30561     {
30562       memcpy( &pNext, &rhs.pNext, sizeof( CopyAccelerationStructureToMemoryInfoKHR ) - offsetof( CopyAccelerationStructureToMemoryInfoKHR, pNext ) );
30563       return *this;
30564     }
30565 
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30566     CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30567     {
30568       *this = rhs;
30569     }
30570 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30571     CopyAccelerationStructureToMemoryInfoKHR& operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30572     {
30573       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>(&rhs);
30574       return *this;
30575     }
30576 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30577     CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30578     {
30579       pNext = pNext_;
30580       return *this;
30581     }
30582 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30583     CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
30584     {
30585       src = src_;
30586       return *this;
30587     }
30588 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30589     CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
30590     {
30591       dst = dst_;
30592       return *this;
30593     }
30594 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30595     CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
30596     {
30597       mode = mode_;
30598       return *this;
30599     }
30600 
30601 
operator VkCopyAccelerationStructureToMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30602     operator VkCopyAccelerationStructureToMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
30603     {
30604       return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
30605     }
30606 
operator VkCopyAccelerationStructureToMemoryInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR30607     operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
30608     {
30609       return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
30610     }
30611 
30612 
30613 
30614 
30615   public:
30616     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
30617     const void* pNext = {};
30618     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
30619     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
30620     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
30621 
30622   };
30623   static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), "struct and wrapper have different size!" );
30624   static_assert( std::is_standard_layout<CopyAccelerationStructureToMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
30625 
30626   template <>
30627   struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
30628   {
30629     using Type = CopyAccelerationStructureToMemoryInfoKHR;
30630   };
30631 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
30632 
30633   struct CopyDescriptorSet
30634   {
30635     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
30636 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet30637     VULKAN_HPP_CONSTEXPR CopyDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {},
30638                                             uint32_t srcBinding_ = {},
30639                                             uint32_t srcArrayElement_ = {},
30640                                             VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {},
30641                                             uint32_t dstBinding_ = {},
30642                                             uint32_t dstArrayElement_ = {},
30643                                             uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT
30644       : srcSet( srcSet_ )
30645       , srcBinding( srcBinding_ )
30646       , srcArrayElement( srcArrayElement_ )
30647       , dstSet( dstSet_ )
30648       , dstBinding( dstBinding_ )
30649       , dstArrayElement( dstArrayElement_ )
30650       , descriptorCount( descriptorCount_ )
30651     {}
30652 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet30653     CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
30654     {
30655       memcpy( &pNext, &rhs.pNext, sizeof( CopyDescriptorSet ) - offsetof( CopyDescriptorSet, pNext ) );
30656       return *this;
30657     }
30658 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet30659     CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
30660     {
30661       *this = rhs;
30662     }
30663 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet30664     CopyDescriptorSet& operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
30665     {
30666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>(&rhs);
30667       return *this;
30668     }
30669 
setPNextVULKAN_HPP_NAMESPACE::CopyDescriptorSet30670     CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30671     {
30672       pNext = pNext_;
30673       return *this;
30674     }
30675 
setSrcSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet30676     CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
30677     {
30678       srcSet = srcSet_;
30679       return *this;
30680     }
30681 
setSrcBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet30682     CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
30683     {
30684       srcBinding = srcBinding_;
30685       return *this;
30686     }
30687 
setSrcArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet30688     CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
30689     {
30690       srcArrayElement = srcArrayElement_;
30691       return *this;
30692     }
30693 
setDstSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet30694     CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
30695     {
30696       dstSet = dstSet_;
30697       return *this;
30698     }
30699 
setDstBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet30700     CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
30701     {
30702       dstBinding = dstBinding_;
30703       return *this;
30704     }
30705 
setDstArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet30706     CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
30707     {
30708       dstArrayElement = dstArrayElement_;
30709       return *this;
30710     }
30711 
setDescriptorCountVULKAN_HPP_NAMESPACE::CopyDescriptorSet30712     CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
30713     {
30714       descriptorCount = descriptorCount_;
30715       return *this;
30716     }
30717 
30718 
operator VkCopyDescriptorSet const&VULKAN_HPP_NAMESPACE::CopyDescriptorSet30719     operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
30720     {
30721       return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
30722     }
30723 
operator VkCopyDescriptorSet&VULKAN_HPP_NAMESPACE::CopyDescriptorSet30724     operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
30725     {
30726       return *reinterpret_cast<VkCopyDescriptorSet*>( this );
30727     }
30728 
30729 
30730 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30731     auto operator<=>( CopyDescriptorSet const& ) const = default;
30732 #else
operator ==VULKAN_HPP_NAMESPACE::CopyDescriptorSet30733     bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
30734     {
30735       return ( sType == rhs.sType )
30736           && ( pNext == rhs.pNext )
30737           && ( srcSet == rhs.srcSet )
30738           && ( srcBinding == rhs.srcBinding )
30739           && ( srcArrayElement == rhs.srcArrayElement )
30740           && ( dstSet == rhs.dstSet )
30741           && ( dstBinding == rhs.dstBinding )
30742           && ( dstArrayElement == rhs.dstArrayElement )
30743           && ( descriptorCount == rhs.descriptorCount );
30744     }
30745 
operator !=VULKAN_HPP_NAMESPACE::CopyDescriptorSet30746     bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
30747     {
30748       return !operator==( rhs );
30749     }
30750 #endif
30751 
30752 
30753 
30754   public:
30755     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
30756     const void* pNext = {};
30757     VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
30758     uint32_t srcBinding = {};
30759     uint32_t srcArrayElement = {};
30760     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
30761     uint32_t dstBinding = {};
30762     uint32_t dstArrayElement = {};
30763     uint32_t descriptorCount = {};
30764 
30765   };
30766   static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" );
30767   static_assert( std::is_standard_layout<CopyDescriptorSet>::value, "struct wrapper is not a standard layout!" );
30768 
30769   template <>
30770   struct CppType<StructureType, StructureType::eCopyDescriptorSet>
30771   {
30772     using Type = CopyDescriptorSet;
30773   };
30774 
30775 #ifdef VK_ENABLE_BETA_EXTENSIONS
30776   struct CopyMemoryToAccelerationStructureInfoKHR
30777   {
30778     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
30779 
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30780     CopyMemoryToAccelerationStructureInfoKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {},
30781                                               VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
30782                                               VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone ) VULKAN_HPP_NOEXCEPT
30783       : src( src_ )
30784       , dst( dst_ )
30785       , mode( mode_ )
30786     {}
30787 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30788     CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30789     {
30790       memcpy( &pNext, &rhs.pNext, sizeof( CopyMemoryToAccelerationStructureInfoKHR ) - offsetof( CopyMemoryToAccelerationStructureInfoKHR, pNext ) );
30791       return *this;
30792     }
30793 
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30794     CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30795     {
30796       *this = rhs;
30797     }
30798 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30799     CopyMemoryToAccelerationStructureInfoKHR& operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30800     {
30801       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>(&rhs);
30802       return *this;
30803     }
30804 
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30805     CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30806     {
30807       pNext = pNext_;
30808       return *this;
30809     }
30810 
setSrcVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30811     CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
30812     {
30813       src = src_;
30814       return *this;
30815     }
30816 
setDstVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30817     CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
30818     {
30819       dst = dst_;
30820       return *this;
30821     }
30822 
setModeVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30823     CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
30824     {
30825       mode = mode_;
30826       return *this;
30827     }
30828 
30829 
operator VkCopyMemoryToAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30830     operator VkCopyMemoryToAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
30831     {
30832       return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
30833     }
30834 
operator VkCopyMemoryToAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR30835     operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
30836     {
30837       return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
30838     }
30839 
30840 
30841 
30842 
30843   public:
30844     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
30845     const void* pNext = {};
30846     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
30847     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
30848     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
30849 
30850   };
30851   static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
30852   static_assert( std::is_standard_layout<CopyMemoryToAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
30853 
30854   template <>
30855   struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
30856   {
30857     using Type = CopyMemoryToAccelerationStructureInfoKHR;
30858   };
30859 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
30860 
30861 #ifdef VK_USE_PLATFORM_WIN32_KHR
30862   struct D3D12FenceSubmitInfoKHR
30863   {
30864     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
30865 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30866     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = {},
30867                                                   const uint64_t* pWaitSemaphoreValues_ = {},
30868                                                   uint32_t signalSemaphoreValuesCount_ = {},
30869                                                   const uint64_t* pSignalSemaphoreValues_ = {} ) VULKAN_HPP_NOEXCEPT
30870       : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ )
30871       , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
30872       , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ )
30873       , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
30874     {}
30875 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30876     D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30877     {
30878       memcpy( &pNext, &rhs.pNext, sizeof( D3D12FenceSubmitInfoKHR ) - offsetof( D3D12FenceSubmitInfoKHR, pNext ) );
30879       return *this;
30880     }
30881 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30882     D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30883     {
30884       *this = rhs;
30885     }
30886 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30887     D3D12FenceSubmitInfoKHR& operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30888     {
30889       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>(&rhs);
30890       return *this;
30891     }
30892 
setPNextVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30893     D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30894     {
30895       pNext = pNext_;
30896       return *this;
30897     }
30898 
setWaitSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30899     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
30900     {
30901       waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
30902       return *this;
30903     }
30904 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30905     D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
30906     {
30907       pWaitSemaphoreValues = pWaitSemaphoreValues_;
30908       return *this;
30909     }
30910 
setSignalSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30911     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
30912     {
30913       signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
30914       return *this;
30915     }
30916 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30917     D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
30918     {
30919       pSignalSemaphoreValues = pSignalSemaphoreValues_;
30920       return *this;
30921     }
30922 
30923 
operator VkD3D12FenceSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30924     operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
30925     {
30926       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
30927     }
30928 
operator VkD3D12FenceSubmitInfoKHR&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30929     operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
30930     {
30931       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
30932     }
30933 
30934 
30935 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30936     auto operator<=>( D3D12FenceSubmitInfoKHR const& ) const = default;
30937 #else
operator ==VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30938     bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30939     {
30940       return ( sType == rhs.sType )
30941           && ( pNext == rhs.pNext )
30942           && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
30943           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
30944           && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
30945           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
30946     }
30947 
operator !=VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR30948     bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30949     {
30950       return !operator==( rhs );
30951     }
30952 #endif
30953 
30954 
30955 
30956   public:
30957     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
30958     const void* pNext = {};
30959     uint32_t waitSemaphoreValuesCount = {};
30960     const uint64_t* pWaitSemaphoreValues = {};
30961     uint32_t signalSemaphoreValuesCount = {};
30962     const uint64_t* pSignalSemaphoreValues = {};
30963 
30964   };
30965   static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" );
30966   static_assert( std::is_standard_layout<D3D12FenceSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
30967 
30968   template <>
30969   struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
30970   {
30971     using Type = D3D12FenceSubmitInfoKHR;
30972   };
30973 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
30974 
30975   struct DebugMarkerMarkerInfoEXT
30976   {
30977     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
30978 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT30979     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( const char* pMarkerName_ = {},
30980                                                       std::array<float,4> const& color_ = {} ) VULKAN_HPP_NOEXCEPT
30981       : pMarkerName( pMarkerName_ )
30982       , color( color_ )
30983     {}
30984 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT30985     DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30986     {
30987       memcpy( &pNext, &rhs.pNext, sizeof( DebugMarkerMarkerInfoEXT ) - offsetof( DebugMarkerMarkerInfoEXT, pNext ) );
30988       return *this;
30989     }
30990 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT30991     DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30992     {
30993       *this = rhs;
30994     }
30995 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT30996     DebugMarkerMarkerInfoEXT& operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30997     {
30998       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>(&rhs);
30999       return *this;
31000     }
31001 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT31002     DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31003     {
31004       pNext = pNext_;
31005       return *this;
31006     }
31007 
setPMarkerNameVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT31008     DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT
31009     {
31010       pMarkerName = pMarkerName_;
31011       return *this;
31012     }
31013 
setColorVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT31014     DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
31015     {
31016       color = color_;
31017       return *this;
31018     }
31019 
31020 
operator VkDebugMarkerMarkerInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT31021     operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31022     {
31023       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
31024     }
31025 
operator VkDebugMarkerMarkerInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT31026     operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
31027     {
31028       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
31029     }
31030 
31031 
31032 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31033     auto operator<=>( DebugMarkerMarkerInfoEXT const& ) const = default;
31034 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT31035     bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31036     {
31037       return ( sType == rhs.sType )
31038           && ( pNext == rhs.pNext )
31039           && ( pMarkerName == rhs.pMarkerName )
31040           && ( color == rhs.color );
31041     }
31042 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT31043     bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31044     {
31045       return !operator==( rhs );
31046     }
31047 #endif
31048 
31049 
31050 
31051   public:
31052     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
31053     const void* pNext = {};
31054     const char* pMarkerName = {};
31055     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
31056 
31057   };
31058   static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" );
31059   static_assert( std::is_standard_layout<DebugMarkerMarkerInfoEXT>::value, "struct wrapper is not a standard layout!" );
31060 
31061   template <>
31062   struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
31063   {
31064     using Type = DebugMarkerMarkerInfoEXT;
31065   };
31066 
31067   struct DebugMarkerObjectNameInfoEXT
31068   {
31069     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
31070 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31071     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown,
31072                                                        uint64_t object_ = {},
31073                                                        const char* pObjectName_ = {} ) VULKAN_HPP_NOEXCEPT
31074       : objectType( objectType_ )
31075       , object( object_ )
31076       , pObjectName( pObjectName_ )
31077     {}
31078 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31079     DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31080     {
31081       memcpy( &pNext, &rhs.pNext, sizeof( DebugMarkerObjectNameInfoEXT ) - offsetof( DebugMarkerObjectNameInfoEXT, pNext ) );
31082       return *this;
31083     }
31084 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31085     DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31086     {
31087       *this = rhs;
31088     }
31089 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31090     DebugMarkerObjectNameInfoEXT& operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31091     {
31092       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>(&rhs);
31093       return *this;
31094     }
31095 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31096     DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31097     {
31098       pNext = pNext_;
31099       return *this;
31100     }
31101 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31102     DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
31103     {
31104       objectType = objectType_;
31105       return *this;
31106     }
31107 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31108     DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
31109     {
31110       object = object_;
31111       return *this;
31112     }
31113 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31114     DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
31115     {
31116       pObjectName = pObjectName_;
31117       return *this;
31118     }
31119 
31120 
operator VkDebugMarkerObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31121     operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31122     {
31123       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
31124     }
31125 
operator VkDebugMarkerObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31126     operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
31127     {
31128       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
31129     }
31130 
31131 
31132 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31133     auto operator<=>( DebugMarkerObjectNameInfoEXT const& ) const = default;
31134 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31135     bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31136     {
31137       return ( sType == rhs.sType )
31138           && ( pNext == rhs.pNext )
31139           && ( objectType == rhs.objectType )
31140           && ( object == rhs.object )
31141           && ( pObjectName == rhs.pObjectName );
31142     }
31143 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT31144     bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31145     {
31146       return !operator==( rhs );
31147     }
31148 #endif
31149 
31150 
31151 
31152   public:
31153     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
31154     const void* pNext = {};
31155     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
31156     uint64_t object = {};
31157     const char* pObjectName = {};
31158 
31159   };
31160   static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" );
31161   static_assert( std::is_standard_layout<DebugMarkerObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
31162 
31163   template <>
31164   struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
31165   {
31166     using Type = DebugMarkerObjectNameInfoEXT;
31167   };
31168 
31169   struct DebugMarkerObjectTagInfoEXT
31170   {
31171     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
31172 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31173     VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown,
31174                                                       uint64_t object_ = {},
31175                                                       uint64_t tagName_ = {},
31176                                                       size_t tagSize_ = {},
31177                                                       const void* pTag_ = {} ) VULKAN_HPP_NOEXCEPT
31178       : objectType( objectType_ )
31179       , object( object_ )
31180       , tagName( tagName_ )
31181       , tagSize( tagSize_ )
31182       , pTag( pTag_ )
31183     {}
31184 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31185     DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31186     {
31187       memcpy( &pNext, &rhs.pNext, sizeof( DebugMarkerObjectTagInfoEXT ) - offsetof( DebugMarkerObjectTagInfoEXT, pNext ) );
31188       return *this;
31189     }
31190 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31191     DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31192     {
31193       *this = rhs;
31194     }
31195 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31196     DebugMarkerObjectTagInfoEXT& operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31197     {
31198       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>(&rhs);
31199       return *this;
31200     }
31201 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31202     DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31203     {
31204       pNext = pNext_;
31205       return *this;
31206     }
31207 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31208     DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
31209     {
31210       objectType = objectType_;
31211       return *this;
31212     }
31213 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31214     DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
31215     {
31216       object = object_;
31217       return *this;
31218     }
31219 
setTagNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31220     DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
31221     {
31222       tagName = tagName_;
31223       return *this;
31224     }
31225 
setTagSizeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31226     DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
31227     {
31228       tagSize = tagSize_;
31229       return *this;
31230     }
31231 
setPTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31232     DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
31233     {
31234       pTag = pTag_;
31235       return *this;
31236     }
31237 
31238 
operator VkDebugMarkerObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31239     operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31240     {
31241       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
31242     }
31243 
operator VkDebugMarkerObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31244     operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
31245     {
31246       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
31247     }
31248 
31249 
31250 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31251     auto operator<=>( DebugMarkerObjectTagInfoEXT const& ) const = default;
31252 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31253     bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31254     {
31255       return ( sType == rhs.sType )
31256           && ( pNext == rhs.pNext )
31257           && ( objectType == rhs.objectType )
31258           && ( object == rhs.object )
31259           && ( tagName == rhs.tagName )
31260           && ( tagSize == rhs.tagSize )
31261           && ( pTag == rhs.pTag );
31262     }
31263 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT31264     bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31265     {
31266       return !operator==( rhs );
31267     }
31268 #endif
31269 
31270 
31271 
31272   public:
31273     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
31274     const void* pNext = {};
31275     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
31276     uint64_t object = {};
31277     uint64_t tagName = {};
31278     size_t tagSize = {};
31279     const void* pTag = {};
31280 
31281   };
31282   static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" );
31283   static_assert( std::is_standard_layout<DebugMarkerObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
31284 
31285   template <>
31286   struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
31287   {
31288     using Type = DebugMarkerObjectTagInfoEXT;
31289   };
31290 
31291   struct DebugReportCallbackCreateInfoEXT
31292   {
31293     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
31294 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31295     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {},
31296                                                            PFN_vkDebugReportCallbackEXT pfnCallback_ = {},
31297                                                            void* pUserData_ = {} ) VULKAN_HPP_NOEXCEPT
31298       : flags( flags_ )
31299       , pfnCallback( pfnCallback_ )
31300       , pUserData( pUserData_ )
31301     {}
31302 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31303     DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31304     {
31305       memcpy( &pNext, &rhs.pNext, sizeof( DebugReportCallbackCreateInfoEXT ) - offsetof( DebugReportCallbackCreateInfoEXT, pNext ) );
31306       return *this;
31307     }
31308 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31309     DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31310     {
31311       *this = rhs;
31312     }
31313 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31314     DebugReportCallbackCreateInfoEXT& operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31315     {
31316       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>(&rhs);
31317       return *this;
31318     }
31319 
setPNextVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31320     DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31321     {
31322       pNext = pNext_;
31323       return *this;
31324     }
31325 
setFlagsVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31326     DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
31327     {
31328       flags = flags_;
31329       return *this;
31330     }
31331 
setPfnCallbackVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31332     DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
31333     {
31334       pfnCallback = pfnCallback_;
31335       return *this;
31336     }
31337 
setPUserDataVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31338     DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
31339     {
31340       pUserData = pUserData_;
31341       return *this;
31342     }
31343 
31344 
operator VkDebugReportCallbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31345     operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31346     {
31347       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
31348     }
31349 
operator VkDebugReportCallbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31350     operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
31351     {
31352       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
31353     }
31354 
31355 
31356 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31357     auto operator<=>( DebugReportCallbackCreateInfoEXT const& ) const = default;
31358 #else
operator ==VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31359     bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31360     {
31361       return ( sType == rhs.sType )
31362           && ( pNext == rhs.pNext )
31363           && ( flags == rhs.flags )
31364           && ( pfnCallback == rhs.pfnCallback )
31365           && ( pUserData == rhs.pUserData );
31366     }
31367 
operator !=VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT31368     bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31369     {
31370       return !operator==( rhs );
31371     }
31372 #endif
31373 
31374 
31375 
31376   public:
31377     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
31378     const void* pNext = {};
31379     VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
31380     PFN_vkDebugReportCallbackEXT pfnCallback = {};
31381     void* pUserData = {};
31382 
31383   };
31384   static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" );
31385   static_assert( std::is_standard_layout<DebugReportCallbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
31386 
31387   template <>
31388   struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
31389   {
31390     using Type = DebugReportCallbackCreateInfoEXT;
31391   };
31392 
31393   struct DebugUtilsLabelEXT
31394   {
31395     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
31396 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31397     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( const char* pLabelName_ = {},
31398                                                 std::array<float,4> const& color_ = {} ) VULKAN_HPP_NOEXCEPT
31399       : pLabelName( pLabelName_ )
31400       , color( color_ )
31401     {}
31402 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31403     DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31404     {
31405       memcpy( &pNext, &rhs.pNext, sizeof( DebugUtilsLabelEXT ) - offsetof( DebugUtilsLabelEXT, pNext ) );
31406       return *this;
31407     }
31408 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31409     DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31410     {
31411       *this = rhs;
31412     }
31413 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31414     DebugUtilsLabelEXT& operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31415     {
31416       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>(&rhs);
31417       return *this;
31418     }
31419 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31420     DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31421     {
31422       pNext = pNext_;
31423       return *this;
31424     }
31425 
setPLabelNameVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31426     DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT
31427     {
31428       pLabelName = pLabelName_;
31429       return *this;
31430     }
31431 
setColorVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31432     DebugUtilsLabelEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
31433     {
31434       color = color_;
31435       return *this;
31436     }
31437 
31438 
operator VkDebugUtilsLabelEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31439     operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT
31440     {
31441       return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
31442     }
31443 
operator VkDebugUtilsLabelEXT&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31444     operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
31445     {
31446       return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
31447     }
31448 
31449 
31450 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31451     auto operator<=>( DebugUtilsLabelEXT const& ) const = default;
31452 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31453     bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31454     {
31455       return ( sType == rhs.sType )
31456           && ( pNext == rhs.pNext )
31457           && ( pLabelName == rhs.pLabelName )
31458           && ( color == rhs.color );
31459     }
31460 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT31461     bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31462     {
31463       return !operator==( rhs );
31464     }
31465 #endif
31466 
31467 
31468 
31469   public:
31470     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
31471     const void* pNext = {};
31472     const char* pLabelName = {};
31473     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
31474 
31475   };
31476   static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" );
31477   static_assert( std::is_standard_layout<DebugUtilsLabelEXT>::value, "struct wrapper is not a standard layout!" );
31478 
31479   template <>
31480   struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
31481   {
31482     using Type = DebugUtilsLabelEXT;
31483   };
31484 
31485   struct DebugUtilsObjectNameInfoEXT
31486   {
31487     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
31488 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31489     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
31490                                                       uint64_t objectHandle_ = {},
31491                                                       const char* pObjectName_ = {} ) VULKAN_HPP_NOEXCEPT
31492       : objectType( objectType_ )
31493       , objectHandle( objectHandle_ )
31494       , pObjectName( pObjectName_ )
31495     {}
31496 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31497     DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31498     {
31499       memcpy( &pNext, &rhs.pNext, sizeof( DebugUtilsObjectNameInfoEXT ) - offsetof( DebugUtilsObjectNameInfoEXT, pNext ) );
31500       return *this;
31501     }
31502 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31503     DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31504     {
31505       *this = rhs;
31506     }
31507 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31508     DebugUtilsObjectNameInfoEXT& operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31509     {
31510       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>(&rhs);
31511       return *this;
31512     }
31513 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31514     DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31515     {
31516       pNext = pNext_;
31517       return *this;
31518     }
31519 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31520     DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
31521     {
31522       objectType = objectType_;
31523       return *this;
31524     }
31525 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31526     DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
31527     {
31528       objectHandle = objectHandle_;
31529       return *this;
31530     }
31531 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31532     DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
31533     {
31534       pObjectName = pObjectName_;
31535       return *this;
31536     }
31537 
31538 
operator VkDebugUtilsObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31539     operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31540     {
31541       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
31542     }
31543 
operator VkDebugUtilsObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31544     operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
31545     {
31546       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
31547     }
31548 
31549 
31550 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31551     auto operator<=>( DebugUtilsObjectNameInfoEXT const& ) const = default;
31552 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31553     bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31554     {
31555       return ( sType == rhs.sType )
31556           && ( pNext == rhs.pNext )
31557           && ( objectType == rhs.objectType )
31558           && ( objectHandle == rhs.objectHandle )
31559           && ( pObjectName == rhs.pObjectName );
31560     }
31561 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT31562     bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31563     {
31564       return !operator==( rhs );
31565     }
31566 #endif
31567 
31568 
31569 
31570   public:
31571     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
31572     const void* pNext = {};
31573     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
31574     uint64_t objectHandle = {};
31575     const char* pObjectName = {};
31576 
31577   };
31578   static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" );
31579   static_assert( std::is_standard_layout<DebugUtilsObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
31580 
31581   template <>
31582   struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
31583   {
31584     using Type = DebugUtilsObjectNameInfoEXT;
31585   };
31586 
31587   struct DebugUtilsMessengerCallbackDataEXT
31588   {
31589     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
31590 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31591     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {},
31592                                                                 const char* pMessageIdName_ = {},
31593                                                                 int32_t messageIdNumber_ = {},
31594                                                                 const char* pMessage_ = {},
31595                                                                 uint32_t queueLabelCount_ = {},
31596                                                                 const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ = {},
31597                                                                 uint32_t cmdBufLabelCount_ = {},
31598                                                                 const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ = {},
31599                                                                 uint32_t objectCount_ = {},
31600                                                                 const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ = {} ) VULKAN_HPP_NOEXCEPT
31601       : flags( flags_ )
31602       , pMessageIdName( pMessageIdName_ )
31603       , messageIdNumber( messageIdNumber_ )
31604       , pMessage( pMessage_ )
31605       , queueLabelCount( queueLabelCount_ )
31606       , pQueueLabels( pQueueLabels_ )
31607       , cmdBufLabelCount( cmdBufLabelCount_ )
31608       , pCmdBufLabels( pCmdBufLabels_ )
31609       , objectCount( objectCount_ )
31610       , pObjects( pObjects_ )
31611     {}
31612 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31613     DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31614     {
31615       memcpy( &pNext, &rhs.pNext, sizeof( DebugUtilsMessengerCallbackDataEXT ) - offsetof( DebugUtilsMessengerCallbackDataEXT, pNext ) );
31616       return *this;
31617     }
31618 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31619     DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31620     {
31621       *this = rhs;
31622     }
31623 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31624     DebugUtilsMessengerCallbackDataEXT& operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31625     {
31626       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>(&rhs);
31627       return *this;
31628     }
31629 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31630     DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31631     {
31632       pNext = pNext_;
31633       return *this;
31634     }
31635 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31636     DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
31637     {
31638       flags = flags_;
31639       return *this;
31640     }
31641 
setPMessageIdNameVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31642     DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
31643     {
31644       pMessageIdName = pMessageIdName_;
31645       return *this;
31646     }
31647 
setMessageIdNumberVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31648     DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
31649     {
31650       messageIdNumber = messageIdNumber_;
31651       return *this;
31652     }
31653 
setPMessageVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31654     DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT
31655     {
31656       pMessage = pMessage_;
31657       return *this;
31658     }
31659 
setQueueLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31660     DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
31661     {
31662       queueLabelCount = queueLabelCount_;
31663       return *this;
31664     }
31665 
setPQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31666     DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
31667     {
31668       pQueueLabels = pQueueLabels_;
31669       return *this;
31670     }
31671 
setCmdBufLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31672     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
31673     {
31674       cmdBufLabelCount = cmdBufLabelCount_;
31675       return *this;
31676     }
31677 
setPCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31678     DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
31679     {
31680       pCmdBufLabels = pCmdBufLabels_;
31681       return *this;
31682     }
31683 
setObjectCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31684     DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
31685     {
31686       objectCount = objectCount_;
31687       return *this;
31688     }
31689 
setPObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31690     DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT
31691     {
31692       pObjects = pObjects_;
31693       return *this;
31694     }
31695 
31696 
operator VkDebugUtilsMessengerCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31697     operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
31698     {
31699       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
31700     }
31701 
operator VkDebugUtilsMessengerCallbackDataEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31702     operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
31703     {
31704       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
31705     }
31706 
31707 
31708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31709     auto operator<=>( DebugUtilsMessengerCallbackDataEXT const& ) const = default;
31710 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31711     bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31712     {
31713       return ( sType == rhs.sType )
31714           && ( pNext == rhs.pNext )
31715           && ( flags == rhs.flags )
31716           && ( pMessageIdName == rhs.pMessageIdName )
31717           && ( messageIdNumber == rhs.messageIdNumber )
31718           && ( pMessage == rhs.pMessage )
31719           && ( queueLabelCount == rhs.queueLabelCount )
31720           && ( pQueueLabels == rhs.pQueueLabels )
31721           && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
31722           && ( pCmdBufLabels == rhs.pCmdBufLabels )
31723           && ( objectCount == rhs.objectCount )
31724           && ( pObjects == rhs.pObjects );
31725     }
31726 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT31727     bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31728     {
31729       return !operator==( rhs );
31730     }
31731 #endif
31732 
31733 
31734 
31735   public:
31736     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
31737     const void* pNext = {};
31738     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
31739     const char* pMessageIdName = {};
31740     int32_t messageIdNumber = {};
31741     const char* pMessage = {};
31742     uint32_t queueLabelCount = {};
31743     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {};
31744     uint32_t cmdBufLabelCount = {};
31745     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {};
31746     uint32_t objectCount = {};
31747     const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {};
31748 
31749   };
31750   static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" );
31751   static_assert( std::is_standard_layout<DebugUtilsMessengerCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
31752 
31753   template <>
31754   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
31755   {
31756     using Type = DebugUtilsMessengerCallbackDataEXT;
31757   };
31758 
31759   struct DebugUtilsMessengerCreateInfoEXT
31760   {
31761     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
31762 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31763     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {},
31764                                                            VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {},
31765                                                            VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {},
31766                                                            PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {},
31767                                                            void* pUserData_ = {} ) VULKAN_HPP_NOEXCEPT
31768       : flags( flags_ )
31769       , messageSeverity( messageSeverity_ )
31770       , messageType( messageType_ )
31771       , pfnUserCallback( pfnUserCallback_ )
31772       , pUserData( pUserData_ )
31773     {}
31774 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31775     DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31776     {
31777       memcpy( &pNext, &rhs.pNext, sizeof( DebugUtilsMessengerCreateInfoEXT ) - offsetof( DebugUtilsMessengerCreateInfoEXT, pNext ) );
31778       return *this;
31779     }
31780 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31781     DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31782     {
31783       *this = rhs;
31784     }
31785 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31786     DebugUtilsMessengerCreateInfoEXT& operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31787     {
31788       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>(&rhs);
31789       return *this;
31790     }
31791 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31792     DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31793     {
31794       pNext = pNext_;
31795       return *this;
31796     }
31797 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31798     DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
31799     {
31800       flags = flags_;
31801       return *this;
31802     }
31803 
setMessageSeverityVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31804     DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
31805     {
31806       messageSeverity = messageSeverity_;
31807       return *this;
31808     }
31809 
setMessageTypeVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31810     DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
31811     {
31812       messageType = messageType_;
31813       return *this;
31814     }
31815 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31816     DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
31817     {
31818       pfnUserCallback = pfnUserCallback_;
31819       return *this;
31820     }
31821 
setPUserDataVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31822     DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
31823     {
31824       pUserData = pUserData_;
31825       return *this;
31826     }
31827 
31828 
operator VkDebugUtilsMessengerCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31829     operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31830     {
31831       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
31832     }
31833 
operator VkDebugUtilsMessengerCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31834     operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
31835     {
31836       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
31837     }
31838 
31839 
31840 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31841     auto operator<=>( DebugUtilsMessengerCreateInfoEXT const& ) const = default;
31842 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31843     bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31844     {
31845       return ( sType == rhs.sType )
31846           && ( pNext == rhs.pNext )
31847           && ( flags == rhs.flags )
31848           && ( messageSeverity == rhs.messageSeverity )
31849           && ( messageType == rhs.messageType )
31850           && ( pfnUserCallback == rhs.pfnUserCallback )
31851           && ( pUserData == rhs.pUserData );
31852     }
31853 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT31854     bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31855     {
31856       return !operator==( rhs );
31857     }
31858 #endif
31859 
31860 
31861 
31862   public:
31863     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
31864     const void* pNext = {};
31865     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
31866     VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
31867     VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
31868     PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
31869     void* pUserData = {};
31870 
31871   };
31872   static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" );
31873   static_assert( std::is_standard_layout<DebugUtilsMessengerCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
31874 
31875   template <>
31876   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
31877   {
31878     using Type = DebugUtilsMessengerCreateInfoEXT;
31879   };
31880 
31881   struct DebugUtilsObjectTagInfoEXT
31882   {
31883     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
31884 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31885     VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
31886                                                      uint64_t objectHandle_ = {},
31887                                                      uint64_t tagName_ = {},
31888                                                      size_t tagSize_ = {},
31889                                                      const void* pTag_ = {} ) VULKAN_HPP_NOEXCEPT
31890       : objectType( objectType_ )
31891       , objectHandle( objectHandle_ )
31892       , tagName( tagName_ )
31893       , tagSize( tagSize_ )
31894       , pTag( pTag_ )
31895     {}
31896 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31897     DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31898     {
31899       memcpy( &pNext, &rhs.pNext, sizeof( DebugUtilsObjectTagInfoEXT ) - offsetof( DebugUtilsObjectTagInfoEXT, pNext ) );
31900       return *this;
31901     }
31902 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31903     DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31904     {
31905       *this = rhs;
31906     }
31907 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31908     DebugUtilsObjectTagInfoEXT& operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31909     {
31910       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>(&rhs);
31911       return *this;
31912     }
31913 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31914     DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31915     {
31916       pNext = pNext_;
31917       return *this;
31918     }
31919 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31920     DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
31921     {
31922       objectType = objectType_;
31923       return *this;
31924     }
31925 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31926     DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
31927     {
31928       objectHandle = objectHandle_;
31929       return *this;
31930     }
31931 
setTagNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31932     DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
31933     {
31934       tagName = tagName_;
31935       return *this;
31936     }
31937 
setTagSizeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31938     DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
31939     {
31940       tagSize = tagSize_;
31941       return *this;
31942     }
31943 
setPTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31944     DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
31945     {
31946       pTag = pTag_;
31947       return *this;
31948     }
31949 
31950 
operator VkDebugUtilsObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31951     operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31952     {
31953       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
31954     }
31955 
operator VkDebugUtilsObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31956     operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
31957     {
31958       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
31959     }
31960 
31961 
31962 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31963     auto operator<=>( DebugUtilsObjectTagInfoEXT const& ) const = default;
31964 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31965     bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31966     {
31967       return ( sType == rhs.sType )
31968           && ( pNext == rhs.pNext )
31969           && ( objectType == rhs.objectType )
31970           && ( objectHandle == rhs.objectHandle )
31971           && ( tagName == rhs.tagName )
31972           && ( tagSize == rhs.tagSize )
31973           && ( pTag == rhs.pTag );
31974     }
31975 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT31976     bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31977     {
31978       return !operator==( rhs );
31979     }
31980 #endif
31981 
31982 
31983 
31984   public:
31985     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
31986     const void* pNext = {};
31987     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
31988     uint64_t objectHandle = {};
31989     uint64_t tagName = {};
31990     size_t tagSize = {};
31991     const void* pTag = {};
31992 
31993   };
31994   static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" );
31995   static_assert( std::is_standard_layout<DebugUtilsObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
31996 
31997   template <>
31998   struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
31999   {
32000     using Type = DebugUtilsObjectTagInfoEXT;
32001   };
32002 
32003   struct DedicatedAllocationBufferCreateInfoNV
32004   {
32005     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
32006 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32007     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT
32008       : dedicatedAllocation( dedicatedAllocation_ )
32009     {}
32010 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32011     DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32012     {
32013       memcpy( &pNext, &rhs.pNext, sizeof( DedicatedAllocationBufferCreateInfoNV ) - offsetof( DedicatedAllocationBufferCreateInfoNV, pNext ) );
32014       return *this;
32015     }
32016 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32017     DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32018     {
32019       *this = rhs;
32020     }
32021 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32022     DedicatedAllocationBufferCreateInfoNV& operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32023     {
32024       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>(&rhs);
32025       return *this;
32026     }
32027 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32028     DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32029     {
32030       pNext = pNext_;
32031       return *this;
32032     }
32033 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32034     DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
32035     {
32036       dedicatedAllocation = dedicatedAllocation_;
32037       return *this;
32038     }
32039 
32040 
operator VkDedicatedAllocationBufferCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32041     operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
32042     {
32043       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
32044     }
32045 
operator VkDedicatedAllocationBufferCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32046     operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
32047     {
32048       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
32049     }
32050 
32051 
32052 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32053     auto operator<=>( DedicatedAllocationBufferCreateInfoNV const& ) const = default;
32054 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32055     bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32056     {
32057       return ( sType == rhs.sType )
32058           && ( pNext == rhs.pNext )
32059           && ( dedicatedAllocation == rhs.dedicatedAllocation );
32060     }
32061 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV32062     bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32063     {
32064       return !operator==( rhs );
32065     }
32066 #endif
32067 
32068 
32069 
32070   public:
32071     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
32072     const void* pNext = {};
32073     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
32074 
32075   };
32076   static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" );
32077   static_assert( std::is_standard_layout<DedicatedAllocationBufferCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
32078 
32079   template <>
32080   struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
32081   {
32082     using Type = DedicatedAllocationBufferCreateInfoNV;
32083   };
32084 
32085   struct DedicatedAllocationImageCreateInfoNV
32086   {
32087     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
32088 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32089     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT
32090       : dedicatedAllocation( dedicatedAllocation_ )
32091     {}
32092 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32093     DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32094     {
32095       memcpy( &pNext, &rhs.pNext, sizeof( DedicatedAllocationImageCreateInfoNV ) - offsetof( DedicatedAllocationImageCreateInfoNV, pNext ) );
32096       return *this;
32097     }
32098 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32099     DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32100     {
32101       *this = rhs;
32102     }
32103 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32104     DedicatedAllocationImageCreateInfoNV& operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32105     {
32106       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>(&rhs);
32107       return *this;
32108     }
32109 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32110     DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32111     {
32112       pNext = pNext_;
32113       return *this;
32114     }
32115 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32116     DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
32117     {
32118       dedicatedAllocation = dedicatedAllocation_;
32119       return *this;
32120     }
32121 
32122 
operator VkDedicatedAllocationImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32123     operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
32124     {
32125       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
32126     }
32127 
operator VkDedicatedAllocationImageCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32128     operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
32129     {
32130       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
32131     }
32132 
32133 
32134 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32135     auto operator<=>( DedicatedAllocationImageCreateInfoNV const& ) const = default;
32136 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32137     bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32138     {
32139       return ( sType == rhs.sType )
32140           && ( pNext == rhs.pNext )
32141           && ( dedicatedAllocation == rhs.dedicatedAllocation );
32142     }
32143 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV32144     bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32145     {
32146       return !operator==( rhs );
32147     }
32148 #endif
32149 
32150 
32151 
32152   public:
32153     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
32154     const void* pNext = {};
32155     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
32156 
32157   };
32158   static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" );
32159   static_assert( std::is_standard_layout<DedicatedAllocationImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
32160 
32161   template <>
32162   struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
32163   {
32164     using Type = DedicatedAllocationImageCreateInfoNV;
32165   };
32166 
32167   struct DedicatedAllocationMemoryAllocateInfoNV
32168   {
32169     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
32170 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32171     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::Image image_ = {},
32172                                                                   VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT
32173       : image( image_ )
32174       , buffer( buffer_ )
32175     {}
32176 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32177     DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32178     {
32179       memcpy( &pNext, &rhs.pNext, sizeof( DedicatedAllocationMemoryAllocateInfoNV ) - offsetof( DedicatedAllocationMemoryAllocateInfoNV, pNext ) );
32180       return *this;
32181     }
32182 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32183     DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32184     {
32185       *this = rhs;
32186     }
32187 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32188     DedicatedAllocationMemoryAllocateInfoNV& operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32189     {
32190       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>(&rhs);
32191       return *this;
32192     }
32193 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32194     DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32195     {
32196       pNext = pNext_;
32197       return *this;
32198     }
32199 
setImageVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32200     DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
32201     {
32202       image = image_;
32203       return *this;
32204     }
32205 
setBufferVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32206     DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
32207     {
32208       buffer = buffer_;
32209       return *this;
32210     }
32211 
32212 
operator VkDedicatedAllocationMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32213     operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
32214     {
32215       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
32216     }
32217 
operator VkDedicatedAllocationMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32218     operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
32219     {
32220       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
32221     }
32222 
32223 
32224 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32225     auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const& ) const = default;
32226 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32227     bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32228     {
32229       return ( sType == rhs.sType )
32230           && ( pNext == rhs.pNext )
32231           && ( image == rhs.image )
32232           && ( buffer == rhs.buffer );
32233     }
32234 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV32235     bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32236     {
32237       return !operator==( rhs );
32238     }
32239 #endif
32240 
32241 
32242 
32243   public:
32244     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
32245     const void* pNext = {};
32246     VULKAN_HPP_NAMESPACE::Image image = {};
32247     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
32248 
32249   };
32250   static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
32251   static_assert( std::is_standard_layout<DedicatedAllocationMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
32252 
32253   template <>
32254   struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
32255   {
32256     using Type = DedicatedAllocationMemoryAllocateInfoNV;
32257   };
32258 
32259 #ifdef VK_ENABLE_BETA_EXTENSIONS
32260   struct DeferredOperationInfoKHR
32261   {
32262     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeferredOperationInfoKHR;
32263 
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32264     VULKAN_HPP_CONSTEXPR DeferredOperationInfoKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ = {} ) VULKAN_HPP_NOEXCEPT
32265       : operationHandle( operationHandle_ )
32266     {}
32267 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32268     DeferredOperationInfoKHR & operator=( DeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
32269     {
32270       memcpy( &pNext, &rhs.pNext, sizeof( DeferredOperationInfoKHR ) - offsetof( DeferredOperationInfoKHR, pNext ) );
32271       return *this;
32272     }
32273 
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32274     DeferredOperationInfoKHR( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
32275     {
32276       *this = rhs;
32277     }
32278 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32279     DeferredOperationInfoKHR& operator=( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
32280     {
32281       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR const *>(&rhs);
32282       return *this;
32283     }
32284 
setPNextVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32285     DeferredOperationInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32286     {
32287       pNext = pNext_;
32288       return *this;
32289     }
32290 
setOperationHandleVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32291     DeferredOperationInfoKHR & setOperationHandle( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ ) VULKAN_HPP_NOEXCEPT
32292     {
32293       operationHandle = operationHandle_;
32294       return *this;
32295     }
32296 
32297 
operator VkDeferredOperationInfoKHR const&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32298     operator VkDeferredOperationInfoKHR const&() const VULKAN_HPP_NOEXCEPT
32299     {
32300       return *reinterpret_cast<const VkDeferredOperationInfoKHR*>( this );
32301     }
32302 
operator VkDeferredOperationInfoKHR&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32303     operator VkDeferredOperationInfoKHR &() VULKAN_HPP_NOEXCEPT
32304     {
32305       return *reinterpret_cast<VkDeferredOperationInfoKHR*>( this );
32306     }
32307 
32308 
32309 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32310     auto operator<=>( DeferredOperationInfoKHR const& ) const = default;
32311 #else
operator ==VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32312     bool operator==( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
32313     {
32314       return ( sType == rhs.sType )
32315           && ( pNext == rhs.pNext )
32316           && ( operationHandle == rhs.operationHandle );
32317     }
32318 
operator !=VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR32319     bool operator!=( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
32320     {
32321       return !operator==( rhs );
32322     }
32323 #endif
32324 
32325 
32326 
32327   public:
32328     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeferredOperationInfoKHR;
32329     const void* pNext = {};
32330     VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle = {};
32331 
32332   };
32333   static_assert( sizeof( DeferredOperationInfoKHR ) == sizeof( VkDeferredOperationInfoKHR ), "struct and wrapper have different size!" );
32334   static_assert( std::is_standard_layout<DeferredOperationInfoKHR>::value, "struct wrapper is not a standard layout!" );
32335 
32336   template <>
32337   struct CppType<StructureType, StructureType::eDeferredOperationInfoKHR>
32338   {
32339     using Type = DeferredOperationInfoKHR;
32340   };
32341 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
32342 
32343   struct DescriptorBufferInfo
32344   {
32345 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo32346     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
32347                                                VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
32348                                                VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT
32349       : buffer( buffer_ )
32350       , offset( offset_ )
32351       , range( range_ )
32352     {}
32353 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo32354     DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32355     {
32356       *this = rhs;
32357     }
32358 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo32359     DescriptorBufferInfo& operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32360     {
32361       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>(&rhs);
32362       return *this;
32363     }
32364 
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferInfo32365     DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
32366     {
32367       buffer = buffer_;
32368       return *this;
32369     }
32370 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorBufferInfo32371     DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
32372     {
32373       offset = offset_;
32374       return *this;
32375     }
32376 
setRangeVULKAN_HPP_NAMESPACE::DescriptorBufferInfo32377     DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
32378     {
32379       range = range_;
32380       return *this;
32381     }
32382 
32383 
operator VkDescriptorBufferInfo const&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo32384     operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT
32385     {
32386       return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
32387     }
32388 
operator VkDescriptorBufferInfo&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo32389     operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
32390     {
32391       return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
32392     }
32393 
32394 
32395 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32396     auto operator<=>( DescriptorBufferInfo const& ) const = default;
32397 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferInfo32398     bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32399     {
32400       return ( buffer == rhs.buffer )
32401           && ( offset == rhs.offset )
32402           && ( range == rhs.range );
32403     }
32404 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferInfo32405     bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32406     {
32407       return !operator==( rhs );
32408     }
32409 #endif
32410 
32411 
32412 
32413   public:
32414     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
32415     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
32416     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
32417 
32418   };
32419   static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" );
32420   static_assert( std::is_standard_layout<DescriptorBufferInfo>::value, "struct wrapper is not a standard layout!" );
32421 
32422   struct DescriptorImageInfo
32423   {
32424 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo32425     VULKAN_HPP_CONSTEXPR DescriptorImageInfo( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {},
32426                                               VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
32427                                               VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
32428       : sampler( sampler_ )
32429       , imageView( imageView_ )
32430       , imageLayout( imageLayout_ )
32431     {}
32432 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo32433     DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32434     {
32435       *this = rhs;
32436     }
32437 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo32438     DescriptorImageInfo& operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32439     {
32440       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>(&rhs);
32441       return *this;
32442     }
32443 
setSamplerVULKAN_HPP_NAMESPACE::DescriptorImageInfo32444     DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
32445     {
32446       sampler = sampler_;
32447       return *this;
32448     }
32449 
setImageViewVULKAN_HPP_NAMESPACE::DescriptorImageInfo32450     DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
32451     {
32452       imageView = imageView_;
32453       return *this;
32454     }
32455 
setImageLayoutVULKAN_HPP_NAMESPACE::DescriptorImageInfo32456     DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
32457     {
32458       imageLayout = imageLayout_;
32459       return *this;
32460     }
32461 
32462 
operator VkDescriptorImageInfo const&VULKAN_HPP_NAMESPACE::DescriptorImageInfo32463     operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT
32464     {
32465       return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
32466     }
32467 
operator VkDescriptorImageInfo&VULKAN_HPP_NAMESPACE::DescriptorImageInfo32468     operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
32469     {
32470       return *reinterpret_cast<VkDescriptorImageInfo*>( this );
32471     }
32472 
32473 
32474 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32475     auto operator<=>( DescriptorImageInfo const& ) const = default;
32476 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorImageInfo32477     bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32478     {
32479       return ( sampler == rhs.sampler )
32480           && ( imageView == rhs.imageView )
32481           && ( imageLayout == rhs.imageLayout );
32482     }
32483 
operator !=VULKAN_HPP_NAMESPACE::DescriptorImageInfo32484     bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32485     {
32486       return !operator==( rhs );
32487     }
32488 #endif
32489 
32490 
32491 
32492   public:
32493     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
32494     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
32495     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
32496 
32497   };
32498   static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" );
32499   static_assert( std::is_standard_layout<DescriptorImageInfo>::value, "struct wrapper is not a standard layout!" );
32500 
32501   struct DescriptorPoolSize
32502   {
32503 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize32504     VULKAN_HPP_CONSTEXPR DescriptorPoolSize( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
32505                                              uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT
32506       : type( type_ )
32507       , descriptorCount( descriptorCount_ )
32508     {}
32509 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize32510     DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
32511     {
32512       *this = rhs;
32513     }
32514 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize32515     DescriptorPoolSize& operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
32516     {
32517       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>(&rhs);
32518       return *this;
32519     }
32520 
setTypeVULKAN_HPP_NAMESPACE::DescriptorPoolSize32521     DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
32522     {
32523       type = type_;
32524       return *this;
32525     }
32526 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorPoolSize32527     DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
32528     {
32529       descriptorCount = descriptorCount_;
32530       return *this;
32531     }
32532 
32533 
operator VkDescriptorPoolSize const&VULKAN_HPP_NAMESPACE::DescriptorPoolSize32534     operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT
32535     {
32536       return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
32537     }
32538 
operator VkDescriptorPoolSize&VULKAN_HPP_NAMESPACE::DescriptorPoolSize32539     operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
32540     {
32541       return *reinterpret_cast<VkDescriptorPoolSize*>( this );
32542     }
32543 
32544 
32545 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32546     auto operator<=>( DescriptorPoolSize const& ) const = default;
32547 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolSize32548     bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
32549     {
32550       return ( type == rhs.type )
32551           && ( descriptorCount == rhs.descriptorCount );
32552     }
32553 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolSize32554     bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
32555     {
32556       return !operator==( rhs );
32557     }
32558 #endif
32559 
32560 
32561 
32562   public:
32563     VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
32564     uint32_t descriptorCount = {};
32565 
32566   };
32567   static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" );
32568   static_assert( std::is_standard_layout<DescriptorPoolSize>::value, "struct wrapper is not a standard layout!" );
32569 
32570   struct DescriptorPoolCreateInfo
32571   {
32572     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
32573 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32574     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {},
32575                                                    uint32_t maxSets_ = {},
32576                                                    uint32_t poolSizeCount_ = {},
32577                                                    const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {} ) VULKAN_HPP_NOEXCEPT
32578       : flags( flags_ )
32579       , maxSets( maxSets_ )
32580       , poolSizeCount( poolSizeCount_ )
32581       , pPoolSizes( pPoolSizes_ )
32582     {}
32583 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32584     DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32585     {
32586       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorPoolCreateInfo ) - offsetof( DescriptorPoolCreateInfo, pNext ) );
32587       return *this;
32588     }
32589 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32590     DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32591     {
32592       *this = rhs;
32593     }
32594 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32595     DescriptorPoolCreateInfo& operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32596     {
32597       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>(&rhs);
32598       return *this;
32599     }
32600 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32601     DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32602     {
32603       pNext = pNext_;
32604       return *this;
32605     }
32606 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32607     DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
32608     {
32609       flags = flags_;
32610       return *this;
32611     }
32612 
setMaxSetsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32613     DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
32614     {
32615       maxSets = maxSets_;
32616       return *this;
32617     }
32618 
setPoolSizeCountVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32619     DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
32620     {
32621       poolSizeCount = poolSizeCount_;
32622       return *this;
32623     }
32624 
setPPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32625     DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
32626     {
32627       pPoolSizes = pPoolSizes_;
32628       return *this;
32629     }
32630 
32631 
operator VkDescriptorPoolCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32632     operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
32633     {
32634       return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
32635     }
32636 
operator VkDescriptorPoolCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32637     operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
32638     {
32639       return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
32640     }
32641 
32642 
32643 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32644     auto operator<=>( DescriptorPoolCreateInfo const& ) const = default;
32645 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32646     bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32647     {
32648       return ( sType == rhs.sType )
32649           && ( pNext == rhs.pNext )
32650           && ( flags == rhs.flags )
32651           && ( maxSets == rhs.maxSets )
32652           && ( poolSizeCount == rhs.poolSizeCount )
32653           && ( pPoolSizes == rhs.pPoolSizes );
32654     }
32655 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo32656     bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32657     {
32658       return !operator==( rhs );
32659     }
32660 #endif
32661 
32662 
32663 
32664   public:
32665     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
32666     const void* pNext = {};
32667     VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
32668     uint32_t maxSets = {};
32669     uint32_t poolSizeCount = {};
32670     const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {};
32671 
32672   };
32673   static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" );
32674   static_assert( std::is_standard_layout<DescriptorPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
32675 
32676   template <>
32677   struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
32678   {
32679     using Type = DescriptorPoolCreateInfo;
32680   };
32681 
32682   struct DescriptorPoolInlineUniformBlockCreateInfoEXT
32683   {
32684     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
32685 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32686     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( uint32_t maxInlineUniformBlockBindings_ = {} ) VULKAN_HPP_NOEXCEPT
32687       : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
32688     {}
32689 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32690     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32691     {
32692       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) - offsetof( DescriptorPoolInlineUniformBlockCreateInfoEXT, pNext ) );
32693       return *this;
32694     }
32695 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32696     DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32697     {
32698       *this = rhs;
32699     }
32700 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32701     DescriptorPoolInlineUniformBlockCreateInfoEXT& operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32702     {
32703       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT const *>(&rhs);
32704       return *this;
32705     }
32706 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32707     DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32708     {
32709       pNext = pNext_;
32710       return *this;
32711     }
32712 
setMaxInlineUniformBlockBindingsVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32713     DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
32714     {
32715       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
32716       return *this;
32717     }
32718 
32719 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32720     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
32721     {
32722       return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
32723     }
32724 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32725     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
32726     {
32727       return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
32728     }
32729 
32730 
32731 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32732     auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const& ) const = default;
32733 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32734     bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
32735     {
32736       return ( sType == rhs.sType )
32737           && ( pNext == rhs.pNext )
32738           && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
32739     }
32740 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT32741     bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
32742     {
32743       return !operator==( rhs );
32744     }
32745 #endif
32746 
32747 
32748 
32749   public:
32750     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
32751     const void* pNext = {};
32752     uint32_t maxInlineUniformBlockBindings = {};
32753 
32754   };
32755   static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" );
32756   static_assert( std::is_standard_layout<DescriptorPoolInlineUniformBlockCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
32757 
32758   template <>
32759   struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT>
32760   {
32761     using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT;
32762   };
32763 
32764   struct DescriptorSetAllocateInfo
32765   {
32766     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
32767 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32768     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {},
32769                                                     uint32_t descriptorSetCount_ = {},
32770                                                     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {} ) VULKAN_HPP_NOEXCEPT
32771       : descriptorPool( descriptorPool_ )
32772       , descriptorSetCount( descriptorSetCount_ )
32773       , pSetLayouts( pSetLayouts_ )
32774     {}
32775 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32776     DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32777     {
32778       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorSetAllocateInfo ) - offsetof( DescriptorSetAllocateInfo, pNext ) );
32779       return *this;
32780     }
32781 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32782     DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32783     {
32784       *this = rhs;
32785     }
32786 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32787     DescriptorSetAllocateInfo& operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32788     {
32789       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>(&rhs);
32790       return *this;
32791     }
32792 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32793     DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32794     {
32795       pNext = pNext_;
32796       return *this;
32797     }
32798 
setDescriptorPoolVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32799     DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
32800     {
32801       descriptorPool = descriptorPool_;
32802       return *this;
32803     }
32804 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32805     DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
32806     {
32807       descriptorSetCount = descriptorSetCount_;
32808       return *this;
32809     }
32810 
setPSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32811     DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
32812     {
32813       pSetLayouts = pSetLayouts_;
32814       return *this;
32815     }
32816 
32817 
operator VkDescriptorSetAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32818     operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
32819     {
32820       return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
32821     }
32822 
operator VkDescriptorSetAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32823     operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
32824     {
32825       return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
32826     }
32827 
32828 
32829 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32830     auto operator<=>( DescriptorSetAllocateInfo const& ) const = default;
32831 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32832     bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32833     {
32834       return ( sType == rhs.sType )
32835           && ( pNext == rhs.pNext )
32836           && ( descriptorPool == rhs.descriptorPool )
32837           && ( descriptorSetCount == rhs.descriptorSetCount )
32838           && ( pSetLayouts == rhs.pSetLayouts );
32839     }
32840 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo32841     bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32842     {
32843       return !operator==( rhs );
32844     }
32845 #endif
32846 
32847 
32848 
32849   public:
32850     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
32851     const void* pNext = {};
32852     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
32853     uint32_t descriptorSetCount = {};
32854     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
32855 
32856   };
32857   static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" );
32858   static_assert( std::is_standard_layout<DescriptorSetAllocateInfo>::value, "struct wrapper is not a standard layout!" );
32859 
32860   template <>
32861   struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
32862   {
32863     using Type = DescriptorSetAllocateInfo;
32864   };
32865 
32866   struct DescriptorSetLayoutBinding
32867   {
32868 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32869     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( uint32_t binding_ = {},
32870                                                      VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
32871                                                      uint32_t descriptorCount_ = {},
32872                                                      VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {},
32873                                                      const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ = {} ) VULKAN_HPP_NOEXCEPT
32874       : binding( binding_ )
32875       , descriptorType( descriptorType_ )
32876       , descriptorCount( descriptorCount_ )
32877       , stageFlags( stageFlags_ )
32878       , pImmutableSamplers( pImmutableSamplers_ )
32879     {}
32880 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32881     DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
32882     {
32883       *this = rhs;
32884     }
32885 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32886     DescriptorSetLayoutBinding& operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
32887     {
32888       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>(&rhs);
32889       return *this;
32890     }
32891 
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32892     DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
32893     {
32894       binding = binding_;
32895       return *this;
32896     }
32897 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32898     DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
32899     {
32900       descriptorType = descriptorType_;
32901       return *this;
32902     }
32903 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32904     DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
32905     {
32906       descriptorCount = descriptorCount_;
32907       return *this;
32908     }
32909 
setStageFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32910     DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
32911     {
32912       stageFlags = stageFlags_;
32913       return *this;
32914     }
32915 
setPImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32916     DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
32917     {
32918       pImmutableSamplers = pImmutableSamplers_;
32919       return *this;
32920     }
32921 
32922 
operator VkDescriptorSetLayoutBinding const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32923     operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT
32924     {
32925       return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
32926     }
32927 
operator VkDescriptorSetLayoutBinding&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32928     operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
32929     {
32930       return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
32931     }
32932 
32933 
32934 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32935     auto operator<=>( DescriptorSetLayoutBinding const& ) const = default;
32936 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32937     bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
32938     {
32939       return ( binding == rhs.binding )
32940           && ( descriptorType == rhs.descriptorType )
32941           && ( descriptorCount == rhs.descriptorCount )
32942           && ( stageFlags == rhs.stageFlags )
32943           && ( pImmutableSamplers == rhs.pImmutableSamplers );
32944     }
32945 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding32946     bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
32947     {
32948       return !operator==( rhs );
32949     }
32950 #endif
32951 
32952 
32953 
32954   public:
32955     uint32_t binding = {};
32956     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
32957     uint32_t descriptorCount = {};
32958     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
32959     const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {};
32960 
32961   };
32962   static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" );
32963   static_assert( std::is_standard_layout<DescriptorSetLayoutBinding>::value, "struct wrapper is not a standard layout!" );
32964 
32965   struct DescriptorSetLayoutBindingFlagsCreateInfo
32966   {
32967     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
32968 
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo32969     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( uint32_t bindingCount_ = {},
32970                                                                     const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {} ) VULKAN_HPP_NOEXCEPT
32971       : bindingCount( bindingCount_ )
32972       , pBindingFlags( pBindingFlags_ )
32973     {}
32974 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo32975     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32976     {
32977       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) - offsetof( DescriptorSetLayoutBindingFlagsCreateInfo, pNext ) );
32978       return *this;
32979     }
32980 
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo32981     DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32982     {
32983       *this = rhs;
32984     }
32985 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo32986     DescriptorSetLayoutBindingFlagsCreateInfo& operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32987     {
32988       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>(&rhs);
32989       return *this;
32990     }
32991 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo32992     DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32993     {
32994       pNext = pNext_;
32995       return *this;
32996     }
32997 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo32998     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
32999     {
33000       bindingCount = bindingCount_;
33001       return *this;
33002     }
33003 
setPBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo33004     DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
33005     {
33006       pBindingFlags = pBindingFlags_;
33007       return *this;
33008     }
33009 
33010 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo33011     operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
33012     {
33013       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
33014     }
33015 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo33016     operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
33017     {
33018       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
33019     }
33020 
33021 
33022 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33023     auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const& ) const = default;
33024 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo33025     bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33026     {
33027       return ( sType == rhs.sType )
33028           && ( pNext == rhs.pNext )
33029           && ( bindingCount == rhs.bindingCount )
33030           && ( pBindingFlags == rhs.pBindingFlags );
33031     }
33032 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo33033     bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33034     {
33035       return !operator==( rhs );
33036     }
33037 #endif
33038 
33039 
33040 
33041   public:
33042     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
33043     const void* pNext = {};
33044     uint32_t bindingCount = {};
33045     const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {};
33046 
33047   };
33048   static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" );
33049   static_assert( std::is_standard_layout<DescriptorSetLayoutBindingFlagsCreateInfo>::value, "struct wrapper is not a standard layout!" );
33050 
33051   template <>
33052   struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
33053   {
33054     using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
33055   };
33056 
33057   struct DescriptorSetLayoutCreateInfo
33058   {
33059     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
33060 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33061     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {},
33062                                                         uint32_t bindingCount_ = {},
33063                                                         const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {} ) VULKAN_HPP_NOEXCEPT
33064       : flags( flags_ )
33065       , bindingCount( bindingCount_ )
33066       , pBindings( pBindings_ )
33067     {}
33068 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33069     DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33070     {
33071       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorSetLayoutCreateInfo ) - offsetof( DescriptorSetLayoutCreateInfo, pNext ) );
33072       return *this;
33073     }
33074 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33075     DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33076     {
33077       *this = rhs;
33078     }
33079 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33080     DescriptorSetLayoutCreateInfo& operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33081     {
33082       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>(&rhs);
33083       return *this;
33084     }
33085 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33086     DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33087     {
33088       pNext = pNext_;
33089       return *this;
33090     }
33091 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33092     DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
33093     {
33094       flags = flags_;
33095       return *this;
33096     }
33097 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33098     DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
33099     {
33100       bindingCount = bindingCount_;
33101       return *this;
33102     }
33103 
setPBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33104     DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT
33105     {
33106       pBindings = pBindings_;
33107       return *this;
33108     }
33109 
33110 
operator VkDescriptorSetLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33111     operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
33112     {
33113       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
33114     }
33115 
operator VkDescriptorSetLayoutCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33116     operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
33117     {
33118       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
33119     }
33120 
33121 
33122 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33123     auto operator<=>( DescriptorSetLayoutCreateInfo const& ) const = default;
33124 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33125     bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33126     {
33127       return ( sType == rhs.sType )
33128           && ( pNext == rhs.pNext )
33129           && ( flags == rhs.flags )
33130           && ( bindingCount == rhs.bindingCount )
33131           && ( pBindings == rhs.pBindings );
33132     }
33133 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo33134     bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33135     {
33136       return !operator==( rhs );
33137     }
33138 #endif
33139 
33140 
33141 
33142   public:
33143     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
33144     const void* pNext = {};
33145     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
33146     uint32_t bindingCount = {};
33147     const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {};
33148 
33149   };
33150   static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" );
33151   static_assert( std::is_standard_layout<DescriptorSetLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
33152 
33153   template <>
33154   struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
33155   {
33156     using Type = DescriptorSetLayoutCreateInfo;
33157   };
33158 
33159   struct DescriptorSetLayoutSupport
33160   {
33161     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
33162 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33163     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( VULKAN_HPP_NAMESPACE::Bool32 supported_ = {} ) VULKAN_HPP_NOEXCEPT
33164       : supported( supported_ )
33165     {}
33166 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33167     DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
33168     {
33169       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorSetLayoutSupport ) - offsetof( DescriptorSetLayoutSupport, pNext ) );
33170       return *this;
33171     }
33172 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33173     DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
33174     {
33175       *this = rhs;
33176     }
33177 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33178     DescriptorSetLayoutSupport& operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
33179     {
33180       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>(&rhs);
33181       return *this;
33182     }
33183 
33184 
operator VkDescriptorSetLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33185     operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
33186     {
33187       return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
33188     }
33189 
operator VkDescriptorSetLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33190     operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
33191     {
33192       return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
33193     }
33194 
33195 
33196 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33197     auto operator<=>( DescriptorSetLayoutSupport const& ) const = default;
33198 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33199     bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
33200     {
33201       return ( sType == rhs.sType )
33202           && ( pNext == rhs.pNext )
33203           && ( supported == rhs.supported );
33204     }
33205 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport33206     bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
33207     {
33208       return !operator==( rhs );
33209     }
33210 #endif
33211 
33212 
33213 
33214   public:
33215     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
33216     void* pNext = {};
33217     VULKAN_HPP_NAMESPACE::Bool32 supported = {};
33218 
33219   };
33220   static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" );
33221   static_assert( std::is_standard_layout<DescriptorSetLayoutSupport>::value, "struct wrapper is not a standard layout!" );
33222 
33223   template <>
33224   struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
33225   {
33226     using Type = DescriptorSetLayoutSupport;
33227   };
33228 
33229   struct DescriptorSetVariableDescriptorCountAllocateInfo
33230   {
33231     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
33232 
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33233     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( uint32_t descriptorSetCount_ = {},
33234                                                                            const uint32_t* pDescriptorCounts_ = {} ) VULKAN_HPP_NOEXCEPT
33235       : descriptorSetCount( descriptorSetCount_ )
33236       , pDescriptorCounts( pDescriptorCounts_ )
33237     {}
33238 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33239     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33240     {
33241       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) - offsetof( DescriptorSetVariableDescriptorCountAllocateInfo, pNext ) );
33242       return *this;
33243     }
33244 
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33245     DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33246     {
33247       *this = rhs;
33248     }
33249 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33250     DescriptorSetVariableDescriptorCountAllocateInfo& operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33251     {
33252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>(&rhs);
33253       return *this;
33254     }
33255 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33256     DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33257     {
33258       pNext = pNext_;
33259       return *this;
33260     }
33261 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33262     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
33263     {
33264       descriptorSetCount = descriptorSetCount_;
33265       return *this;
33266     }
33267 
setPDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33268     DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
33269     {
33270       pDescriptorCounts = pDescriptorCounts_;
33271       return *this;
33272     }
33273 
33274 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33275     operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
33276     {
33277       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
33278     }
33279 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33280     operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
33281     {
33282       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
33283     }
33284 
33285 
33286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33287     auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const& ) const = default;
33288 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33289     bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33290     {
33291       return ( sType == rhs.sType )
33292           && ( pNext == rhs.pNext )
33293           && ( descriptorSetCount == rhs.descriptorSetCount )
33294           && ( pDescriptorCounts == rhs.pDescriptorCounts );
33295     }
33296 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo33297     bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33298     {
33299       return !operator==( rhs );
33300     }
33301 #endif
33302 
33303 
33304 
33305   public:
33306     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
33307     const void* pNext = {};
33308     uint32_t descriptorSetCount = {};
33309     const uint32_t* pDescriptorCounts = {};
33310 
33311   };
33312   static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" );
33313   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountAllocateInfo>::value, "struct wrapper is not a standard layout!" );
33314 
33315   template <>
33316   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
33317   {
33318     using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
33319   };
33320 
33321   struct DescriptorSetVariableDescriptorCountLayoutSupport
33322   {
33323     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
33324 
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33325     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( uint32_t maxVariableDescriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT
33326       : maxVariableDescriptorCount( maxVariableDescriptorCount_ )
33327     {}
33328 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33329     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
33330     {
33331       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) - offsetof( DescriptorSetVariableDescriptorCountLayoutSupport, pNext ) );
33332       return *this;
33333     }
33334 
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33335     DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
33336     {
33337       *this = rhs;
33338     }
33339 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33340     DescriptorSetVariableDescriptorCountLayoutSupport& operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
33341     {
33342       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>(&rhs);
33343       return *this;
33344     }
33345 
33346 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33347     operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
33348     {
33349       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
33350     }
33351 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33352     operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
33353     {
33354       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
33355     }
33356 
33357 
33358 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33359     auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const& ) const = default;
33360 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33361     bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
33362     {
33363       return ( sType == rhs.sType )
33364           && ( pNext == rhs.pNext )
33365           && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
33366     }
33367 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport33368     bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
33369     {
33370       return !operator==( rhs );
33371     }
33372 #endif
33373 
33374 
33375 
33376   public:
33377     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
33378     void* pNext = {};
33379     uint32_t maxVariableDescriptorCount = {};
33380 
33381   };
33382   static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" );
33383   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountLayoutSupport>::value, "struct wrapper is not a standard layout!" );
33384 
33385   template <>
33386   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
33387   {
33388     using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
33389   };
33390 
33391   struct DescriptorUpdateTemplateEntry
33392   {
33393 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33394     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( uint32_t dstBinding_ = {},
33395                                                         uint32_t dstArrayElement_ = {},
33396                                                         uint32_t descriptorCount_ = {},
33397                                                         VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
33398                                                         size_t offset_ = {},
33399                                                         size_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
33400       : dstBinding( dstBinding_ )
33401       , dstArrayElement( dstArrayElement_ )
33402       , descriptorCount( descriptorCount_ )
33403       , descriptorType( descriptorType_ )
33404       , offset( offset_ )
33405       , stride( stride_ )
33406     {}
33407 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33408     DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
33409     {
33410       *this = rhs;
33411     }
33412 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33413     DescriptorUpdateTemplateEntry& operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
33414     {
33415       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>(&rhs);
33416       return *this;
33417     }
33418 
setDstBindingVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33419     DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
33420     {
33421       dstBinding = dstBinding_;
33422       return *this;
33423     }
33424 
setDstArrayElementVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33425     DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
33426     {
33427       dstArrayElement = dstArrayElement_;
33428       return *this;
33429     }
33430 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33431     DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
33432     {
33433       descriptorCount = descriptorCount_;
33434       return *this;
33435     }
33436 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33437     DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
33438     {
33439       descriptorType = descriptorType_;
33440       return *this;
33441     }
33442 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33443     DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
33444     {
33445       offset = offset_;
33446       return *this;
33447     }
33448 
setStrideVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33449     DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
33450     {
33451       stride = stride_;
33452       return *this;
33453     }
33454 
33455 
operator VkDescriptorUpdateTemplateEntry const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33456     operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT
33457     {
33458       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
33459     }
33460 
operator VkDescriptorUpdateTemplateEntry&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33461     operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
33462     {
33463       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
33464     }
33465 
33466 
33467 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33468     auto operator<=>( DescriptorUpdateTemplateEntry const& ) const = default;
33469 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33470     bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
33471     {
33472       return ( dstBinding == rhs.dstBinding )
33473           && ( dstArrayElement == rhs.dstArrayElement )
33474           && ( descriptorCount == rhs.descriptorCount )
33475           && ( descriptorType == rhs.descriptorType )
33476           && ( offset == rhs.offset )
33477           && ( stride == rhs.stride );
33478     }
33479 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry33480     bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
33481     {
33482       return !operator==( rhs );
33483     }
33484 #endif
33485 
33486 
33487 
33488   public:
33489     uint32_t dstBinding = {};
33490     uint32_t dstArrayElement = {};
33491     uint32_t descriptorCount = {};
33492     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
33493     size_t offset = {};
33494     size_t stride = {};
33495 
33496   };
33497   static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" );
33498   static_assert( std::is_standard_layout<DescriptorUpdateTemplateEntry>::value, "struct wrapper is not a standard layout!" );
33499 
33500   struct DescriptorUpdateTemplateCreateInfo
33501   {
33502     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
33503 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33504     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {},
33505                                                              uint32_t descriptorUpdateEntryCount_ = {},
33506                                                              const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = {},
33507                                                              VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet,
33508                                                              VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
33509                                                              VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
33510                                                              VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {},
33511                                                              uint32_t set_ = {} ) VULKAN_HPP_NOEXCEPT
33512       : flags( flags_ )
33513       , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ )
33514       , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ )
33515       , templateType( templateType_ )
33516       , descriptorSetLayout( descriptorSetLayout_ )
33517       , pipelineBindPoint( pipelineBindPoint_ )
33518       , pipelineLayout( pipelineLayout_ )
33519       , set( set_ )
33520     {}
33521 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33522     DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33523     {
33524       memcpy( &pNext, &rhs.pNext, sizeof( DescriptorUpdateTemplateCreateInfo ) - offsetof( DescriptorUpdateTemplateCreateInfo, pNext ) );
33525       return *this;
33526     }
33527 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33528     DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33529     {
33530       *this = rhs;
33531     }
33532 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33533     DescriptorUpdateTemplateCreateInfo& operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33534     {
33535       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>(&rhs);
33536       return *this;
33537     }
33538 
setPNextVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33539     DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33540     {
33541       pNext = pNext_;
33542       return *this;
33543     }
33544 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33545     DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
33546     {
33547       flags = flags_;
33548       return *this;
33549     }
33550 
setDescriptorUpdateEntryCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33551     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
33552     {
33553       descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
33554       return *this;
33555     }
33556 
setPDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33557     DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
33558     {
33559       pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
33560       return *this;
33561     }
33562 
setTemplateTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33563     DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
33564     {
33565       templateType = templateType_;
33566       return *this;
33567     }
33568 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33569     DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
33570     {
33571       descriptorSetLayout = descriptorSetLayout_;
33572       return *this;
33573     }
33574 
setPipelineBindPointVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33575     DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
33576     {
33577       pipelineBindPoint = pipelineBindPoint_;
33578       return *this;
33579     }
33580 
setPipelineLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33581     DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
33582     {
33583       pipelineLayout = pipelineLayout_;
33584       return *this;
33585     }
33586 
setSetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33587     DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
33588     {
33589       set = set_;
33590       return *this;
33591     }
33592 
33593 
operator VkDescriptorUpdateTemplateCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33594     operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
33595     {
33596       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
33597     }
33598 
operator VkDescriptorUpdateTemplateCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33599     operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
33600     {
33601       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
33602     }
33603 
33604 
33605 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33606     auto operator<=>( DescriptorUpdateTemplateCreateInfo const& ) const = default;
33607 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33608     bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33609     {
33610       return ( sType == rhs.sType )
33611           && ( pNext == rhs.pNext )
33612           && ( flags == rhs.flags )
33613           && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
33614           && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
33615           && ( templateType == rhs.templateType )
33616           && ( descriptorSetLayout == rhs.descriptorSetLayout )
33617           && ( pipelineBindPoint == rhs.pipelineBindPoint )
33618           && ( pipelineLayout == rhs.pipelineLayout )
33619           && ( set == rhs.set );
33620     }
33621 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo33622     bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33623     {
33624       return !operator==( rhs );
33625     }
33626 #endif
33627 
33628 
33629 
33630   public:
33631     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
33632     const void* pNext = {};
33633     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
33634     uint32_t descriptorUpdateEntryCount = {};
33635     const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {};
33636     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
33637     VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
33638     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
33639     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
33640     uint32_t set = {};
33641 
33642   };
33643   static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" );
33644   static_assert( std::is_standard_layout<DescriptorUpdateTemplateCreateInfo>::value, "struct wrapper is not a standard layout!" );
33645 
33646   template <>
33647   struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
33648   {
33649     using Type = DescriptorUpdateTemplateCreateInfo;
33650   };
33651 
33652   struct DeviceQueueCreateInfo
33653   {
33654     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
33655 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33656     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {},
33657                                                 uint32_t queueFamilyIndex_ = {},
33658                                                 uint32_t queueCount_ = {},
33659                                                 const float* pQueuePriorities_ = {} ) VULKAN_HPP_NOEXCEPT
33660       : flags( flags_ )
33661       , queueFamilyIndex( queueFamilyIndex_ )
33662       , queueCount( queueCount_ )
33663       , pQueuePriorities( pQueuePriorities_ )
33664     {}
33665 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33666     DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33667     {
33668       memcpy( &pNext, &rhs.pNext, sizeof( DeviceQueueCreateInfo ) - offsetof( DeviceQueueCreateInfo, pNext ) );
33669       return *this;
33670     }
33671 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33672     DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33673     {
33674       *this = rhs;
33675     }
33676 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33677     DeviceQueueCreateInfo& operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
33678     {
33679       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>(&rhs);
33680       return *this;
33681     }
33682 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33683     DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33684     {
33685       pNext = pNext_;
33686       return *this;
33687     }
33688 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33689     DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
33690     {
33691       flags = flags_;
33692       return *this;
33693     }
33694 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33695     DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
33696     {
33697       queueFamilyIndex = queueFamilyIndex_;
33698       return *this;
33699     }
33700 
setQueueCountVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33701     DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
33702     {
33703       queueCount = queueCount_;
33704       return *this;
33705     }
33706 
setPQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33707     DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
33708     {
33709       pQueuePriorities = pQueuePriorities_;
33710       return *this;
33711     }
33712 
33713 
operator VkDeviceQueueCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33714     operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT
33715     {
33716       return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
33717     }
33718 
operator VkDeviceQueueCreateInfo&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33719     operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
33720     {
33721       return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
33722     }
33723 
33724 
33725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33726     auto operator<=>( DeviceQueueCreateInfo const& ) const = default;
33727 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33728     bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33729     {
33730       return ( sType == rhs.sType )
33731           && ( pNext == rhs.pNext )
33732           && ( flags == rhs.flags )
33733           && ( queueFamilyIndex == rhs.queueFamilyIndex )
33734           && ( queueCount == rhs.queueCount )
33735           && ( pQueuePriorities == rhs.pQueuePriorities );
33736     }
33737 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo33738     bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
33739     {
33740       return !operator==( rhs );
33741     }
33742 #endif
33743 
33744 
33745 
33746   public:
33747     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
33748     const void* pNext = {};
33749     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
33750     uint32_t queueFamilyIndex = {};
33751     uint32_t queueCount = {};
33752     const float* pQueuePriorities = {};
33753 
33754   };
33755   static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" );
33756   static_assert( std::is_standard_layout<DeviceQueueCreateInfo>::value, "struct wrapper is not a standard layout!" );
33757 
33758   template <>
33759   struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
33760   {
33761     using Type = DeviceQueueCreateInfo;
33762   };
33763 
33764   struct PhysicalDeviceFeatures
33765   {
33766 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33767     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {},
33768                                                  VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {},
33769                                                  VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {},
33770                                                  VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {},
33771                                                  VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {},
33772                                                  VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {},
33773                                                  VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {},
33774                                                  VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {},
33775                                                  VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {},
33776                                                  VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {},
33777                                                  VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {},
33778                                                  VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {},
33779                                                  VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {},
33780                                                  VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {},
33781                                                  VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {},
33782                                                  VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {},
33783                                                  VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {},
33784                                                  VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {},
33785                                                  VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {},
33786                                                  VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {},
33787                                                  VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {},
33788                                                  VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {},
33789                                                  VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {},
33790                                                  VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {},
33791                                                  VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {},
33792                                                  VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {},
33793                                                  VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {},
33794                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {},
33795                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {},
33796                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {},
33797                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {},
33798                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {},
33799                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {},
33800                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {},
33801                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {},
33802                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {},
33803                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {},
33804                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {},
33805                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {},
33806                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {},
33807                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {},
33808                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {},
33809                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {},
33810                                                  VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {},
33811                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {},
33812                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {},
33813                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {},
33814                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {},
33815                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {},
33816                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {},
33817                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {},
33818                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {},
33819                                                  VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {},
33820                                                  VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {},
33821                                                  VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {} ) VULKAN_HPP_NOEXCEPT
33822       : robustBufferAccess( robustBufferAccess_ )
33823       , fullDrawIndexUint32( fullDrawIndexUint32_ )
33824       , imageCubeArray( imageCubeArray_ )
33825       , independentBlend( independentBlend_ )
33826       , geometryShader( geometryShader_ )
33827       , tessellationShader( tessellationShader_ )
33828       , sampleRateShading( sampleRateShading_ )
33829       , dualSrcBlend( dualSrcBlend_ )
33830       , logicOp( logicOp_ )
33831       , multiDrawIndirect( multiDrawIndirect_ )
33832       , drawIndirectFirstInstance( drawIndirectFirstInstance_ )
33833       , depthClamp( depthClamp_ )
33834       , depthBiasClamp( depthBiasClamp_ )
33835       , fillModeNonSolid( fillModeNonSolid_ )
33836       , depthBounds( depthBounds_ )
33837       , wideLines( wideLines_ )
33838       , largePoints( largePoints_ )
33839       , alphaToOne( alphaToOne_ )
33840       , multiViewport( multiViewport_ )
33841       , samplerAnisotropy( samplerAnisotropy_ )
33842       , textureCompressionETC2( textureCompressionETC2_ )
33843       , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ )
33844       , textureCompressionBC( textureCompressionBC_ )
33845       , occlusionQueryPrecise( occlusionQueryPrecise_ )
33846       , pipelineStatisticsQuery( pipelineStatisticsQuery_ )
33847       , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ )
33848       , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ )
33849       , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ )
33850       , shaderImageGatherExtended( shaderImageGatherExtended_ )
33851       , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ )
33852       , shaderStorageImageMultisample( shaderStorageImageMultisample_ )
33853       , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ )
33854       , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ )
33855       , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ )
33856       , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ )
33857       , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ )
33858       , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ )
33859       , shaderClipDistance( shaderClipDistance_ )
33860       , shaderCullDistance( shaderCullDistance_ )
33861       , shaderFloat64( shaderFloat64_ )
33862       , shaderInt64( shaderInt64_ )
33863       , shaderInt16( shaderInt16_ )
33864       , shaderResourceResidency( shaderResourceResidency_ )
33865       , shaderResourceMinLod( shaderResourceMinLod_ )
33866       , sparseBinding( sparseBinding_ )
33867       , sparseResidencyBuffer( sparseResidencyBuffer_ )
33868       , sparseResidencyImage2D( sparseResidencyImage2D_ )
33869       , sparseResidencyImage3D( sparseResidencyImage3D_ )
33870       , sparseResidency2Samples( sparseResidency2Samples_ )
33871       , sparseResidency4Samples( sparseResidency4Samples_ )
33872       , sparseResidency8Samples( sparseResidency8Samples_ )
33873       , sparseResidency16Samples( sparseResidency16Samples_ )
33874       , sparseResidencyAliased( sparseResidencyAliased_ )
33875       , variableMultisampleRate( variableMultisampleRate_ )
33876       , inheritedQueries( inheritedQueries_ )
33877     {}
33878 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33879     PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
33880     {
33881       *this = rhs;
33882     }
33883 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33884     PhysicalDeviceFeatures& operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
33885     {
33886       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>(&rhs);
33887       return *this;
33888     }
33889 
setRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33890     PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
33891     {
33892       robustBufferAccess = robustBufferAccess_;
33893       return *this;
33894     }
33895 
setFullDrawIndexUint32VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33896     PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
33897     {
33898       fullDrawIndexUint32 = fullDrawIndexUint32_;
33899       return *this;
33900     }
33901 
setImageCubeArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33902     PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
33903     {
33904       imageCubeArray = imageCubeArray_;
33905       return *this;
33906     }
33907 
setIndependentBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33908     PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
33909     {
33910       independentBlend = independentBlend_;
33911       return *this;
33912     }
33913 
setGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33914     PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
33915     {
33916       geometryShader = geometryShader_;
33917       return *this;
33918     }
33919 
setTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33920     PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
33921     {
33922       tessellationShader = tessellationShader_;
33923       return *this;
33924     }
33925 
setSampleRateShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33926     PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
33927     {
33928       sampleRateShading = sampleRateShading_;
33929       return *this;
33930     }
33931 
setDualSrcBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33932     PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
33933     {
33934       dualSrcBlend = dualSrcBlend_;
33935       return *this;
33936     }
33937 
setLogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33938     PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
33939     {
33940       logicOp = logicOp_;
33941       return *this;
33942     }
33943 
setMultiDrawIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33944     PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
33945     {
33946       multiDrawIndirect = multiDrawIndirect_;
33947       return *this;
33948     }
33949 
setDrawIndirectFirstInstanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33950     PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
33951     {
33952       drawIndirectFirstInstance = drawIndirectFirstInstance_;
33953       return *this;
33954     }
33955 
setDepthClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33956     PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
33957     {
33958       depthClamp = depthClamp_;
33959       return *this;
33960     }
33961 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33962     PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
33963     {
33964       depthBiasClamp = depthBiasClamp_;
33965       return *this;
33966     }
33967 
setFillModeNonSolidVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33968     PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
33969     {
33970       fillModeNonSolid = fillModeNonSolid_;
33971       return *this;
33972     }
33973 
setDepthBoundsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33974     PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
33975     {
33976       depthBounds = depthBounds_;
33977       return *this;
33978     }
33979 
setWideLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33980     PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
33981     {
33982       wideLines = wideLines_;
33983       return *this;
33984     }
33985 
setLargePointsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33986     PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
33987     {
33988       largePoints = largePoints_;
33989       return *this;
33990     }
33991 
setAlphaToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33992     PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
33993     {
33994       alphaToOne = alphaToOne_;
33995       return *this;
33996     }
33997 
setMultiViewportVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures33998     PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
33999     {
34000       multiViewport = multiViewport_;
34001       return *this;
34002     }
34003 
setSamplerAnisotropyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34004     PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
34005     {
34006       samplerAnisotropy = samplerAnisotropy_;
34007       return *this;
34008     }
34009 
setTextureCompressionETC2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34010     PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
34011     {
34012       textureCompressionETC2 = textureCompressionETC2_;
34013       return *this;
34014     }
34015 
setTextureCompressionASTC_LDRVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34016     PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
34017     {
34018       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
34019       return *this;
34020     }
34021 
setTextureCompressionBCVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34022     PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
34023     {
34024       textureCompressionBC = textureCompressionBC_;
34025       return *this;
34026     }
34027 
setOcclusionQueryPreciseVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34028     PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
34029     {
34030       occlusionQueryPrecise = occlusionQueryPrecise_;
34031       return *this;
34032     }
34033 
setPipelineStatisticsQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34034     PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
34035     {
34036       pipelineStatisticsQuery = pipelineStatisticsQuery_;
34037       return *this;
34038     }
34039 
setVertexPipelineStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34040     PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
34041     {
34042       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
34043       return *this;
34044     }
34045 
setFragmentStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34046     PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
34047     {
34048       fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
34049       return *this;
34050     }
34051 
setShaderTessellationAndGeometryPointSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34052     PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
34053     {
34054       shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
34055       return *this;
34056     }
34057 
setShaderImageGatherExtendedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34058     PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
34059     {
34060       shaderImageGatherExtended = shaderImageGatherExtended_;
34061       return *this;
34062     }
34063 
setShaderStorageImageExtendedFormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34064     PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
34065     {
34066       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
34067       return *this;
34068     }
34069 
setShaderStorageImageMultisampleVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34070     PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
34071     {
34072       shaderStorageImageMultisample = shaderStorageImageMultisample_;
34073       return *this;
34074     }
34075 
setShaderStorageImageReadWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34076     PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
34077     {
34078       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
34079       return *this;
34080     }
34081 
setShaderStorageImageWriteWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34082     PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
34083     {
34084       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
34085       return *this;
34086     }
34087 
setShaderUniformBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34088     PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
34089     {
34090       shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
34091       return *this;
34092     }
34093 
setShaderSampledImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34094     PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
34095     {
34096       shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
34097       return *this;
34098     }
34099 
setShaderStorageBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34100     PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
34101     {
34102       shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
34103       return *this;
34104     }
34105 
setShaderStorageImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34106     PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
34107     {
34108       shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
34109       return *this;
34110     }
34111 
setShaderClipDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34112     PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
34113     {
34114       shaderClipDistance = shaderClipDistance_;
34115       return *this;
34116     }
34117 
setShaderCullDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34118     PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
34119     {
34120       shaderCullDistance = shaderCullDistance_;
34121       return *this;
34122     }
34123 
setShaderFloat64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34124     PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
34125     {
34126       shaderFloat64 = shaderFloat64_;
34127       return *this;
34128     }
34129 
setShaderInt64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34130     PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
34131     {
34132       shaderInt64 = shaderInt64_;
34133       return *this;
34134     }
34135 
setShaderInt16VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34136     PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
34137     {
34138       shaderInt16 = shaderInt16_;
34139       return *this;
34140     }
34141 
setShaderResourceResidencyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34142     PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
34143     {
34144       shaderResourceResidency = shaderResourceResidency_;
34145       return *this;
34146     }
34147 
setShaderResourceMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34148     PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
34149     {
34150       shaderResourceMinLod = shaderResourceMinLod_;
34151       return *this;
34152     }
34153 
setSparseBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34154     PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
34155     {
34156       sparseBinding = sparseBinding_;
34157       return *this;
34158     }
34159 
setSparseResidencyBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34160     PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
34161     {
34162       sparseResidencyBuffer = sparseResidencyBuffer_;
34163       return *this;
34164     }
34165 
setSparseResidencyImage2DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34166     PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
34167     {
34168       sparseResidencyImage2D = sparseResidencyImage2D_;
34169       return *this;
34170     }
34171 
setSparseResidencyImage3DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34172     PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
34173     {
34174       sparseResidencyImage3D = sparseResidencyImage3D_;
34175       return *this;
34176     }
34177 
setSparseResidency2SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34178     PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
34179     {
34180       sparseResidency2Samples = sparseResidency2Samples_;
34181       return *this;
34182     }
34183 
setSparseResidency4SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34184     PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
34185     {
34186       sparseResidency4Samples = sparseResidency4Samples_;
34187       return *this;
34188     }
34189 
setSparseResidency8SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34190     PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
34191     {
34192       sparseResidency8Samples = sparseResidency8Samples_;
34193       return *this;
34194     }
34195 
setSparseResidency16SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34196     PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
34197     {
34198       sparseResidency16Samples = sparseResidency16Samples_;
34199       return *this;
34200     }
34201 
setSparseResidencyAliasedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34202     PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
34203     {
34204       sparseResidencyAliased = sparseResidencyAliased_;
34205       return *this;
34206     }
34207 
setVariableMultisampleRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34208     PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
34209     {
34210       variableMultisampleRate = variableMultisampleRate_;
34211       return *this;
34212     }
34213 
setInheritedQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34214     PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
34215     {
34216       inheritedQueries = inheritedQueries_;
34217       return *this;
34218     }
34219 
34220 
operator VkPhysicalDeviceFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34221     operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT
34222     {
34223       return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
34224     }
34225 
operator VkPhysicalDeviceFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34226     operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
34227     {
34228       return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
34229     }
34230 
34231 
34232 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34233     auto operator<=>( PhysicalDeviceFeatures const& ) const = default;
34234 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34235     bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
34236     {
34237       return ( robustBufferAccess == rhs.robustBufferAccess )
34238           && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
34239           && ( imageCubeArray == rhs.imageCubeArray )
34240           && ( independentBlend == rhs.independentBlend )
34241           && ( geometryShader == rhs.geometryShader )
34242           && ( tessellationShader == rhs.tessellationShader )
34243           && ( sampleRateShading == rhs.sampleRateShading )
34244           && ( dualSrcBlend == rhs.dualSrcBlend )
34245           && ( logicOp == rhs.logicOp )
34246           && ( multiDrawIndirect == rhs.multiDrawIndirect )
34247           && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
34248           && ( depthClamp == rhs.depthClamp )
34249           && ( depthBiasClamp == rhs.depthBiasClamp )
34250           && ( fillModeNonSolid == rhs.fillModeNonSolid )
34251           && ( depthBounds == rhs.depthBounds )
34252           && ( wideLines == rhs.wideLines )
34253           && ( largePoints == rhs.largePoints )
34254           && ( alphaToOne == rhs.alphaToOne )
34255           && ( multiViewport == rhs.multiViewport )
34256           && ( samplerAnisotropy == rhs.samplerAnisotropy )
34257           && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
34258           && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
34259           && ( textureCompressionBC == rhs.textureCompressionBC )
34260           && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
34261           && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
34262           && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
34263           && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
34264           && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
34265           && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
34266           && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
34267           && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
34268           && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
34269           && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
34270           && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
34271           && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
34272           && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
34273           && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
34274           && ( shaderClipDistance == rhs.shaderClipDistance )
34275           && ( shaderCullDistance == rhs.shaderCullDistance )
34276           && ( shaderFloat64 == rhs.shaderFloat64 )
34277           && ( shaderInt64 == rhs.shaderInt64 )
34278           && ( shaderInt16 == rhs.shaderInt16 )
34279           && ( shaderResourceResidency == rhs.shaderResourceResidency )
34280           && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
34281           && ( sparseBinding == rhs.sparseBinding )
34282           && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
34283           && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
34284           && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
34285           && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
34286           && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
34287           && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
34288           && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
34289           && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
34290           && ( variableMultisampleRate == rhs.variableMultisampleRate )
34291           && ( inheritedQueries == rhs.inheritedQueries );
34292     }
34293 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures34294     bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
34295     {
34296       return !operator==( rhs );
34297     }
34298 #endif
34299 
34300 
34301 
34302   public:
34303     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
34304     VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
34305     VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
34306     VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
34307     VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
34308     VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
34309     VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
34310     VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
34311     VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
34312     VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
34313     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
34314     VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
34315     VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
34316     VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
34317     VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
34318     VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
34319     VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
34320     VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
34321     VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
34322     VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
34323     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
34324     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
34325     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
34326     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
34327     VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
34328     VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
34329     VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
34330     VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
34331     VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
34332     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
34333     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
34334     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
34335     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
34336     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
34337     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
34338     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
34339     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
34340     VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
34341     VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
34342     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
34343     VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
34344     VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
34345     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
34346     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
34347     VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
34348     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
34349     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
34350     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
34351     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
34352     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
34353     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
34354     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
34355     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
34356     VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
34357     VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
34358 
34359   };
34360   static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" );
34361   static_assert( std::is_standard_layout<PhysicalDeviceFeatures>::value, "struct wrapper is not a standard layout!" );
34362 
34363   struct DeviceCreateInfo
34364   {
34365     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
34366 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo34367     VULKAN_HPP_CONSTEXPR DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {},
34368                                            uint32_t queueCreateInfoCount_ = {},
34369                                            const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ = {},
34370                                            uint32_t enabledLayerCount_ = {},
34371                                            const char* const* ppEnabledLayerNames_ = {},
34372                                            uint32_t enabledExtensionCount_ = {},
34373                                            const char* const* ppEnabledExtensionNames_ = {},
34374                                            const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
34375       : flags( flags_ )
34376       , queueCreateInfoCount( queueCreateInfoCount_ )
34377       , pQueueCreateInfos( pQueueCreateInfos_ )
34378       , enabledLayerCount( enabledLayerCount_ )
34379       , ppEnabledLayerNames( ppEnabledLayerNames_ )
34380       , enabledExtensionCount( enabledExtensionCount_ )
34381       , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
34382       , pEnabledFeatures( pEnabledFeatures_ )
34383     {}
34384 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo34385     DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34386     {
34387       memcpy( &pNext, &rhs.pNext, sizeof( DeviceCreateInfo ) - offsetof( DeviceCreateInfo, pNext ) );
34388       return *this;
34389     }
34390 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo34391     DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34392     {
34393       *this = rhs;
34394     }
34395 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo34396     DeviceCreateInfo& operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34397     {
34398       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>(&rhs);
34399       return *this;
34400     }
34401 
setPNextVULKAN_HPP_NAMESPACE::DeviceCreateInfo34402     DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34403     {
34404       pNext = pNext_;
34405       return *this;
34406     }
34407 
setFlagsVULKAN_HPP_NAMESPACE::DeviceCreateInfo34408     DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
34409     {
34410       flags = flags_;
34411       return *this;
34412     }
34413 
setQueueCreateInfoCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo34414     DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
34415     {
34416       queueCreateInfoCount = queueCreateInfoCount_;
34417       return *this;
34418     }
34419 
setPQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo34420     DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
34421     {
34422       pQueueCreateInfos = pQueueCreateInfos_;
34423       return *this;
34424     }
34425 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo34426     DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
34427     {
34428       enabledLayerCount = enabledLayerCount_;
34429       return *this;
34430     }
34431 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo34432     DeviceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
34433     {
34434       ppEnabledLayerNames = ppEnabledLayerNames_;
34435       return *this;
34436     }
34437 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo34438     DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
34439     {
34440       enabledExtensionCount = enabledExtensionCount_;
34441       return *this;
34442     }
34443 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo34444     DeviceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
34445     {
34446       ppEnabledExtensionNames = ppEnabledExtensionNames_;
34447       return *this;
34448     }
34449 
setPEnabledFeaturesVULKAN_HPP_NAMESPACE::DeviceCreateInfo34450     DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
34451     {
34452       pEnabledFeatures = pEnabledFeatures_;
34453       return *this;
34454     }
34455 
34456 
operator VkDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceCreateInfo34457     operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
34458     {
34459       return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
34460     }
34461 
operator VkDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceCreateInfo34462     operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
34463     {
34464       return *reinterpret_cast<VkDeviceCreateInfo*>( this );
34465     }
34466 
34467 
34468 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34469     auto operator<=>( DeviceCreateInfo const& ) const = default;
34470 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceCreateInfo34471     bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34472     {
34473       return ( sType == rhs.sType )
34474           && ( pNext == rhs.pNext )
34475           && ( flags == rhs.flags )
34476           && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
34477           && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
34478           && ( enabledLayerCount == rhs.enabledLayerCount )
34479           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
34480           && ( enabledExtensionCount == rhs.enabledExtensionCount )
34481           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames )
34482           && ( pEnabledFeatures == rhs.pEnabledFeatures );
34483     }
34484 
operator !=VULKAN_HPP_NAMESPACE::DeviceCreateInfo34485     bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34486     {
34487       return !operator==( rhs );
34488     }
34489 #endif
34490 
34491 
34492 
34493   public:
34494     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
34495     const void* pNext = {};
34496     VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
34497     uint32_t queueCreateInfoCount = {};
34498     const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {};
34499     uint32_t enabledLayerCount = {};
34500     const char* const* ppEnabledLayerNames = {};
34501     uint32_t enabledExtensionCount = {};
34502     const char* const* ppEnabledExtensionNames = {};
34503     const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {};
34504 
34505   };
34506   static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
34507   static_assert( std::is_standard_layout<DeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
34508 
34509   template <>
34510   struct CppType<StructureType, StructureType::eDeviceCreateInfo>
34511   {
34512     using Type = DeviceCreateInfo;
34513   };
34514 
34515   struct DeviceDiagnosticsConfigCreateInfoNV
34516   {
34517     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
34518 
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34519     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {} ) VULKAN_HPP_NOEXCEPT
34520       : flags( flags_ )
34521     {}
34522 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34523     DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
34524     {
34525       memcpy( &pNext, &rhs.pNext, sizeof( DeviceDiagnosticsConfigCreateInfoNV ) - offsetof( DeviceDiagnosticsConfigCreateInfoNV, pNext ) );
34526       return *this;
34527     }
34528 
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34529     DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
34530     {
34531       *this = rhs;
34532     }
34533 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34534     DeviceDiagnosticsConfigCreateInfoNV& operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
34535     {
34536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>(&rhs);
34537       return *this;
34538     }
34539 
setPNextVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34540     DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34541     {
34542       pNext = pNext_;
34543       return *this;
34544     }
34545 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34546     DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
34547     {
34548       flags = flags_;
34549       return *this;
34550     }
34551 
34552 
operator VkDeviceDiagnosticsConfigCreateInfoNV const&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34553     operator VkDeviceDiagnosticsConfigCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
34554     {
34555       return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
34556     }
34557 
operator VkDeviceDiagnosticsConfigCreateInfoNV&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34558     operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
34559     {
34560       return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
34561     }
34562 
34563 
34564 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34565     auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const& ) const = default;
34566 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34567     bool operator==( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34568     {
34569       return ( sType == rhs.sType )
34570           && ( pNext == rhs.pNext )
34571           && ( flags == rhs.flags );
34572     }
34573 
operator !=VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV34574     bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34575     {
34576       return !operator==( rhs );
34577     }
34578 #endif
34579 
34580 
34581 
34582   public:
34583     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
34584     const void* pNext = {};
34585     VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
34586 
34587   };
34588   static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), "struct and wrapper have different size!" );
34589   static_assert( std::is_standard_layout<DeviceDiagnosticsConfigCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
34590 
34591   template <>
34592   struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
34593   {
34594     using Type = DeviceDiagnosticsConfigCreateInfoNV;
34595   };
34596 
34597   struct DeviceEventInfoEXT
34598   {
34599     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
34600 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34601     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug ) VULKAN_HPP_NOEXCEPT
34602       : deviceEvent( deviceEvent_ )
34603     {}
34604 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34605     DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
34606     {
34607       memcpy( &pNext, &rhs.pNext, sizeof( DeviceEventInfoEXT ) - offsetof( DeviceEventInfoEXT, pNext ) );
34608       return *this;
34609     }
34610 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34611     DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
34612     {
34613       *this = rhs;
34614     }
34615 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34616     DeviceEventInfoEXT& operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
34617     {
34618       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>(&rhs);
34619       return *this;
34620     }
34621 
setPNextVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34622     DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34623     {
34624       pNext = pNext_;
34625       return *this;
34626     }
34627 
setDeviceEventVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34628     DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
34629     {
34630       deviceEvent = deviceEvent_;
34631       return *this;
34632     }
34633 
34634 
operator VkDeviceEventInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34635     operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
34636     {
34637       return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
34638     }
34639 
operator VkDeviceEventInfoEXT&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34640     operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
34641     {
34642       return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
34643     }
34644 
34645 
34646 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34647     auto operator<=>( DeviceEventInfoEXT const& ) const = default;
34648 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34649     bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
34650     {
34651       return ( sType == rhs.sType )
34652           && ( pNext == rhs.pNext )
34653           && ( deviceEvent == rhs.deviceEvent );
34654     }
34655 
operator !=VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT34656     bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
34657     {
34658       return !operator==( rhs );
34659     }
34660 #endif
34661 
34662 
34663 
34664   public:
34665     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
34666     const void* pNext = {};
34667     VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
34668 
34669   };
34670   static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" );
34671   static_assert( std::is_standard_layout<DeviceEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
34672 
34673   template <>
34674   struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
34675   {
34676     using Type = DeviceEventInfoEXT;
34677   };
34678 
34679   struct DeviceGroupBindSparseInfo
34680   {
34681     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
34682 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34683     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = {},
34684                                                     uint32_t memoryDeviceIndex_ = {} ) VULKAN_HPP_NOEXCEPT
34685       : resourceDeviceIndex( resourceDeviceIndex_ )
34686       , memoryDeviceIndex( memoryDeviceIndex_ )
34687     {}
34688 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34689     DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34690     {
34691       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupBindSparseInfo ) - offsetof( DeviceGroupBindSparseInfo, pNext ) );
34692       return *this;
34693     }
34694 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34695     DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34696     {
34697       *this = rhs;
34698     }
34699 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34700     DeviceGroupBindSparseInfo& operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34701     {
34702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>(&rhs);
34703       return *this;
34704     }
34705 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34706     DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34707     {
34708       pNext = pNext_;
34709       return *this;
34710     }
34711 
setResourceDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34712     DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
34713     {
34714       resourceDeviceIndex = resourceDeviceIndex_;
34715       return *this;
34716     }
34717 
setMemoryDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34718     DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
34719     {
34720       memoryDeviceIndex = memoryDeviceIndex_;
34721       return *this;
34722     }
34723 
34724 
operator VkDeviceGroupBindSparseInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34725     operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
34726     {
34727       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
34728     }
34729 
operator VkDeviceGroupBindSparseInfo&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34730     operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
34731     {
34732       return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
34733     }
34734 
34735 
34736 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34737     auto operator<=>( DeviceGroupBindSparseInfo const& ) const = default;
34738 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34739     bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34740     {
34741       return ( sType == rhs.sType )
34742           && ( pNext == rhs.pNext )
34743           && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
34744           && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
34745     }
34746 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo34747     bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34748     {
34749       return !operator==( rhs );
34750     }
34751 #endif
34752 
34753 
34754 
34755   public:
34756     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
34757     const void* pNext = {};
34758     uint32_t resourceDeviceIndex = {};
34759     uint32_t memoryDeviceIndex = {};
34760 
34761   };
34762   static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" );
34763   static_assert( std::is_standard_layout<DeviceGroupBindSparseInfo>::value, "struct wrapper is not a standard layout!" );
34764 
34765   template <>
34766   struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
34767   {
34768     using Type = DeviceGroupBindSparseInfo;
34769   };
34770 
34771   struct DeviceGroupCommandBufferBeginInfo
34772   {
34773     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
34774 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34775     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT
34776       : deviceMask( deviceMask_ )
34777     {}
34778 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34779     DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34780     {
34781       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupCommandBufferBeginInfo ) - offsetof( DeviceGroupCommandBufferBeginInfo, pNext ) );
34782       return *this;
34783     }
34784 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34785     DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34786     {
34787       *this = rhs;
34788     }
34789 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34790     DeviceGroupCommandBufferBeginInfo& operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34791     {
34792       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>(&rhs);
34793       return *this;
34794     }
34795 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34796     DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34797     {
34798       pNext = pNext_;
34799       return *this;
34800     }
34801 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34802     DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
34803     {
34804       deviceMask = deviceMask_;
34805       return *this;
34806     }
34807 
34808 
operator VkDeviceGroupCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34809     operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
34810     {
34811       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
34812     }
34813 
operator VkDeviceGroupCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34814     operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
34815     {
34816       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
34817     }
34818 
34819 
34820 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34821     auto operator<=>( DeviceGroupCommandBufferBeginInfo const& ) const = default;
34822 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34823     bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34824     {
34825       return ( sType == rhs.sType )
34826           && ( pNext == rhs.pNext )
34827           && ( deviceMask == rhs.deviceMask );
34828     }
34829 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo34830     bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34831     {
34832       return !operator==( rhs );
34833     }
34834 #endif
34835 
34836 
34837 
34838   public:
34839     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
34840     const void* pNext = {};
34841     uint32_t deviceMask = {};
34842 
34843   };
34844   static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" );
34845   static_assert( std::is_standard_layout<DeviceGroupCommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
34846 
34847   template <>
34848   struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
34849   {
34850     using Type = DeviceGroupCommandBufferBeginInfo;
34851   };
34852 
34853   struct DeviceGroupDeviceCreateInfo
34854   {
34855     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
34856 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34857     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = {},
34858                                                       const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {} ) VULKAN_HPP_NOEXCEPT
34859       : physicalDeviceCount( physicalDeviceCount_ )
34860       , pPhysicalDevices( pPhysicalDevices_ )
34861     {}
34862 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34863     DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34864     {
34865       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupDeviceCreateInfo ) - offsetof( DeviceGroupDeviceCreateInfo, pNext ) );
34866       return *this;
34867     }
34868 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34869     DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34870     {
34871       *this = rhs;
34872     }
34873 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34874     DeviceGroupDeviceCreateInfo& operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34875     {
34876       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>(&rhs);
34877       return *this;
34878     }
34879 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34880     DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34881     {
34882       pNext = pNext_;
34883       return *this;
34884     }
34885 
setPhysicalDeviceCountVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34886     DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
34887     {
34888       physicalDeviceCount = physicalDeviceCount_;
34889       return *this;
34890     }
34891 
setPPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34892     DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
34893     {
34894       pPhysicalDevices = pPhysicalDevices_;
34895       return *this;
34896     }
34897 
34898 
operator VkDeviceGroupDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34899     operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
34900     {
34901       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
34902     }
34903 
operator VkDeviceGroupDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34904     operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
34905     {
34906       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
34907     }
34908 
34909 
34910 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34911     auto operator<=>( DeviceGroupDeviceCreateInfo const& ) const = default;
34912 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34913     bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34914     {
34915       return ( sType == rhs.sType )
34916           && ( pNext == rhs.pNext )
34917           && ( physicalDeviceCount == rhs.physicalDeviceCount )
34918           && ( pPhysicalDevices == rhs.pPhysicalDevices );
34919     }
34920 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo34921     bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34922     {
34923       return !operator==( rhs );
34924     }
34925 #endif
34926 
34927 
34928 
34929   public:
34930     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
34931     const void* pNext = {};
34932     uint32_t physicalDeviceCount = {};
34933     const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {};
34934 
34935   };
34936   static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" );
34937   static_assert( std::is_standard_layout<DeviceGroupDeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
34938 
34939   template <>
34940   struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
34941   {
34942     using Type = DeviceGroupDeviceCreateInfo;
34943   };
34944 
34945   struct DeviceGroupPresentCapabilitiesKHR
34946   {
34947     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
34948 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34949     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( std::array<uint32_t,VK_MAX_DEVICE_GROUP_SIZE> const& presentMask_ = {},
34950                                                                VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {} ) VULKAN_HPP_NOEXCEPT
34951       : presentMask( presentMask_ )
34952       , modes( modes_ )
34953     {}
34954 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34955     DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34956     {
34957       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupPresentCapabilitiesKHR ) - offsetof( DeviceGroupPresentCapabilitiesKHR, pNext ) );
34958       return *this;
34959     }
34960 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34961     DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34962     {
34963       *this = rhs;
34964     }
34965 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34966     DeviceGroupPresentCapabilitiesKHR& operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34967     {
34968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>(&rhs);
34969       return *this;
34970     }
34971 
34972 
operator VkDeviceGroupPresentCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34973     operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
34974     {
34975       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
34976     }
34977 
operator VkDeviceGroupPresentCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34978     operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
34979     {
34980       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
34981     }
34982 
34983 
34984 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34985     auto operator<=>( DeviceGroupPresentCapabilitiesKHR const& ) const = default;
34986 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34987     bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34988     {
34989       return ( sType == rhs.sType )
34990           && ( pNext == rhs.pNext )
34991           && ( presentMask == rhs.presentMask )
34992           && ( modes == rhs.modes );
34993     }
34994 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR34995     bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34996     {
34997       return !operator==( rhs );
34998     }
34999 #endif
35000 
35001 
35002 
35003   public:
35004     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
35005     const void* pNext = {};
35006     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
35007     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
35008 
35009   };
35010   static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" );
35011   static_assert( std::is_standard_layout<DeviceGroupPresentCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
35012 
35013   template <>
35014   struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
35015   {
35016     using Type = DeviceGroupPresentCapabilitiesKHR;
35017   };
35018 
35019   struct DeviceGroupPresentInfoKHR
35020   {
35021     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
35022 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35023     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( uint32_t swapchainCount_ = {},
35024                                                     const uint32_t* pDeviceMasks_ = {},
35025                                                     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal ) VULKAN_HPP_NOEXCEPT
35026       : swapchainCount( swapchainCount_ )
35027       , pDeviceMasks( pDeviceMasks_ )
35028       , mode( mode_ )
35029     {}
35030 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35031     DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35032     {
35033       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupPresentInfoKHR ) - offsetof( DeviceGroupPresentInfoKHR, pNext ) );
35034       return *this;
35035     }
35036 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35037     DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35038     {
35039       *this = rhs;
35040     }
35041 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35042     DeviceGroupPresentInfoKHR& operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35043     {
35044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>(&rhs);
35045       return *this;
35046     }
35047 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35048     DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35049     {
35050       pNext = pNext_;
35051       return *this;
35052     }
35053 
setSwapchainCountVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35054     DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
35055     {
35056       swapchainCount = swapchainCount_;
35057       return *this;
35058     }
35059 
setPDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35060     DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
35061     {
35062       pDeviceMasks = pDeviceMasks_;
35063       return *this;
35064     }
35065 
setModeVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35066     DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
35067     {
35068       mode = mode_;
35069       return *this;
35070     }
35071 
35072 
operator VkDeviceGroupPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35073     operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
35074     {
35075       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
35076     }
35077 
operator VkDeviceGroupPresentInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35078     operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
35079     {
35080       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
35081     }
35082 
35083 
35084 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35085     auto operator<=>( DeviceGroupPresentInfoKHR const& ) const = default;
35086 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35087     bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
35088     {
35089       return ( sType == rhs.sType )
35090           && ( pNext == rhs.pNext )
35091           && ( swapchainCount == rhs.swapchainCount )
35092           && ( pDeviceMasks == rhs.pDeviceMasks )
35093           && ( mode == rhs.mode );
35094     }
35095 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR35096     bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
35097     {
35098       return !operator==( rhs );
35099     }
35100 #endif
35101 
35102 
35103 
35104   public:
35105     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
35106     const void* pNext = {};
35107     uint32_t swapchainCount = {};
35108     const uint32_t* pDeviceMasks = {};
35109     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
35110 
35111   };
35112   static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" );
35113   static_assert( std::is_standard_layout<DeviceGroupPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
35114 
35115   template <>
35116   struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
35117   {
35118     using Type = DeviceGroupPresentInfoKHR;
35119   };
35120 
35121   struct DeviceGroupRenderPassBeginInfo
35122   {
35123     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
35124 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35125     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = {},
35126                                                          uint32_t deviceRenderAreaCount_ = {},
35127                                                          const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {} ) VULKAN_HPP_NOEXCEPT
35128       : deviceMask( deviceMask_ )
35129       , deviceRenderAreaCount( deviceRenderAreaCount_ )
35130       , pDeviceRenderAreas( pDeviceRenderAreas_ )
35131     {}
35132 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35133     DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35134     {
35135       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupRenderPassBeginInfo ) - offsetof( DeviceGroupRenderPassBeginInfo, pNext ) );
35136       return *this;
35137     }
35138 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35139     DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35140     {
35141       *this = rhs;
35142     }
35143 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35144     DeviceGroupRenderPassBeginInfo& operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35145     {
35146       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>(&rhs);
35147       return *this;
35148     }
35149 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35150     DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35151     {
35152       pNext = pNext_;
35153       return *this;
35154     }
35155 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35156     DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
35157     {
35158       deviceMask = deviceMask_;
35159       return *this;
35160     }
35161 
setDeviceRenderAreaCountVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35162     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
35163     {
35164       deviceRenderAreaCount = deviceRenderAreaCount_;
35165       return *this;
35166     }
35167 
setPDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35168     DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
35169     {
35170       pDeviceRenderAreas = pDeviceRenderAreas_;
35171       return *this;
35172     }
35173 
35174 
operator VkDeviceGroupRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35175     operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
35176     {
35177       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
35178     }
35179 
operator VkDeviceGroupRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35180     operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
35181     {
35182       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
35183     }
35184 
35185 
35186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35187     auto operator<=>( DeviceGroupRenderPassBeginInfo const& ) const = default;
35188 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35189     bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35190     {
35191       return ( sType == rhs.sType )
35192           && ( pNext == rhs.pNext )
35193           && ( deviceMask == rhs.deviceMask )
35194           && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
35195           && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
35196     }
35197 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo35198     bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35199     {
35200       return !operator==( rhs );
35201     }
35202 #endif
35203 
35204 
35205 
35206   public:
35207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
35208     const void* pNext = {};
35209     uint32_t deviceMask = {};
35210     uint32_t deviceRenderAreaCount = {};
35211     const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {};
35212 
35213   };
35214   static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" );
35215   static_assert( std::is_standard_layout<DeviceGroupRenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
35216 
35217   template <>
35218   struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
35219   {
35220     using Type = DeviceGroupRenderPassBeginInfo;
35221   };
35222 
35223   struct DeviceGroupSubmitInfo
35224   {
35225     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
35226 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35227     VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = {},
35228                                                 const uint32_t* pWaitSemaphoreDeviceIndices_ = {},
35229                                                 uint32_t commandBufferCount_ = {},
35230                                                 const uint32_t* pCommandBufferDeviceMasks_ = {},
35231                                                 uint32_t signalSemaphoreCount_ = {},
35232                                                 const uint32_t* pSignalSemaphoreDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT
35233       : waitSemaphoreCount( waitSemaphoreCount_ )
35234       , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ )
35235       , commandBufferCount( commandBufferCount_ )
35236       , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ )
35237       , signalSemaphoreCount( signalSemaphoreCount_ )
35238       , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
35239     {}
35240 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35241     DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35242     {
35243       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupSubmitInfo ) - offsetof( DeviceGroupSubmitInfo, pNext ) );
35244       return *this;
35245     }
35246 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35247     DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35248     {
35249       *this = rhs;
35250     }
35251 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35252     DeviceGroupSubmitInfo& operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35253     {
35254       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>(&rhs);
35255       return *this;
35256     }
35257 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35258     DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35259     {
35260       pNext = pNext_;
35261       return *this;
35262     }
35263 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35264     DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
35265     {
35266       waitSemaphoreCount = waitSemaphoreCount_;
35267       return *this;
35268     }
35269 
setPWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35270     DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
35271     {
35272       pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
35273       return *this;
35274     }
35275 
setCommandBufferCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35276     DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
35277     {
35278       commandBufferCount = commandBufferCount_;
35279       return *this;
35280     }
35281 
setPCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35282     DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
35283     {
35284       pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
35285       return *this;
35286     }
35287 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35288     DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
35289     {
35290       signalSemaphoreCount = signalSemaphoreCount_;
35291       return *this;
35292     }
35293 
setPSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35294     DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
35295     {
35296       pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
35297       return *this;
35298     }
35299 
35300 
operator VkDeviceGroupSubmitInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35301     operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
35302     {
35303       return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
35304     }
35305 
operator VkDeviceGroupSubmitInfo&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35306     operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
35307     {
35308       return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
35309     }
35310 
35311 
35312 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35313     auto operator<=>( DeviceGroupSubmitInfo const& ) const = default;
35314 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35315     bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35316     {
35317       return ( sType == rhs.sType )
35318           && ( pNext == rhs.pNext )
35319           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
35320           && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
35321           && ( commandBufferCount == rhs.commandBufferCount )
35322           && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
35323           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
35324           && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
35325     }
35326 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo35327     bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35328     {
35329       return !operator==( rhs );
35330     }
35331 #endif
35332 
35333 
35334 
35335   public:
35336     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
35337     const void* pNext = {};
35338     uint32_t waitSemaphoreCount = {};
35339     const uint32_t* pWaitSemaphoreDeviceIndices = {};
35340     uint32_t commandBufferCount = {};
35341     const uint32_t* pCommandBufferDeviceMasks = {};
35342     uint32_t signalSemaphoreCount = {};
35343     const uint32_t* pSignalSemaphoreDeviceIndices = {};
35344 
35345   };
35346   static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" );
35347   static_assert( std::is_standard_layout<DeviceGroupSubmitInfo>::value, "struct wrapper is not a standard layout!" );
35348 
35349   template <>
35350   struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
35351   {
35352     using Type = DeviceGroupSubmitInfo;
35353   };
35354 
35355   struct DeviceGroupSwapchainCreateInfoKHR
35356   {
35357     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
35358 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35359     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {} ) VULKAN_HPP_NOEXCEPT
35360       : modes( modes_ )
35361     {}
35362 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35363     DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35364     {
35365       memcpy( &pNext, &rhs.pNext, sizeof( DeviceGroupSwapchainCreateInfoKHR ) - offsetof( DeviceGroupSwapchainCreateInfoKHR, pNext ) );
35366       return *this;
35367     }
35368 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35369     DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35370     {
35371       *this = rhs;
35372     }
35373 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35374     DeviceGroupSwapchainCreateInfoKHR& operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35375     {
35376       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>(&rhs);
35377       return *this;
35378     }
35379 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35380     DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35381     {
35382       pNext = pNext_;
35383       return *this;
35384     }
35385 
setModesVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35386     DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
35387     {
35388       modes = modes_;
35389       return *this;
35390     }
35391 
35392 
operator VkDeviceGroupSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35393     operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
35394     {
35395       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
35396     }
35397 
operator VkDeviceGroupSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35398     operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
35399     {
35400       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
35401     }
35402 
35403 
35404 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35405     auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const& ) const = default;
35406 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35407     bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
35408     {
35409       return ( sType == rhs.sType )
35410           && ( pNext == rhs.pNext )
35411           && ( modes == rhs.modes );
35412     }
35413 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR35414     bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
35415     {
35416       return !operator==( rhs );
35417     }
35418 #endif
35419 
35420 
35421 
35422   public:
35423     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
35424     const void* pNext = {};
35425     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
35426 
35427   };
35428   static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
35429   static_assert( std::is_standard_layout<DeviceGroupSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
35430 
35431   template <>
35432   struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
35433   {
35434     using Type = DeviceGroupSwapchainCreateInfoKHR;
35435   };
35436 
35437   struct DeviceMemoryOpaqueCaptureAddressInfo
35438   {
35439     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
35440 
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35441     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {} ) VULKAN_HPP_NOEXCEPT
35442       : memory( memory_ )
35443     {}
35444 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35445     DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35446     {
35447       memcpy( &pNext, &rhs.pNext, sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) - offsetof( DeviceMemoryOpaqueCaptureAddressInfo, pNext ) );
35448       return *this;
35449     }
35450 
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35451     DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35452     {
35453       *this = rhs;
35454     }
35455 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35456     DeviceMemoryOpaqueCaptureAddressInfo& operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35457     {
35458       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>(&rhs);
35459       return *this;
35460     }
35461 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35462     DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35463     {
35464       pNext = pNext_;
35465       return *this;
35466     }
35467 
setMemoryVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35468     DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
35469     {
35470       memory = memory_;
35471       return *this;
35472     }
35473 
35474 
operator VkDeviceMemoryOpaqueCaptureAddressInfo const&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35475     operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT
35476     {
35477       return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
35478     }
35479 
operator VkDeviceMemoryOpaqueCaptureAddressInfo&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35480     operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
35481     {
35482       return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
35483     }
35484 
35485 
35486 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35487     auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const& ) const = default;
35488 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35489     bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35490     {
35491       return ( sType == rhs.sType )
35492           && ( pNext == rhs.pNext )
35493           && ( memory == rhs.memory );
35494     }
35495 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo35496     bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35497     {
35498       return !operator==( rhs );
35499     }
35500 #endif
35501 
35502 
35503 
35504   public:
35505     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
35506     const void* pNext = {};
35507     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
35508 
35509   };
35510   static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" );
35511   static_assert( std::is_standard_layout<DeviceMemoryOpaqueCaptureAddressInfo>::value, "struct wrapper is not a standard layout!" );
35512 
35513   template <>
35514   struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
35515   {
35516     using Type = DeviceMemoryOpaqueCaptureAddressInfo;
35517   };
35518 
35519   struct DeviceMemoryOverallocationCreateInfoAMD
35520   {
35521     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
35522 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35523     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault ) VULKAN_HPP_NOEXCEPT
35524       : overallocationBehavior( overallocationBehavior_ )
35525     {}
35526 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35527     DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
35528     {
35529       memcpy( &pNext, &rhs.pNext, sizeof( DeviceMemoryOverallocationCreateInfoAMD ) - offsetof( DeviceMemoryOverallocationCreateInfoAMD, pNext ) );
35530       return *this;
35531     }
35532 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35533     DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
35534     {
35535       *this = rhs;
35536     }
35537 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35538     DeviceMemoryOverallocationCreateInfoAMD& operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
35539     {
35540       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>(&rhs);
35541       return *this;
35542     }
35543 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35544     DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35545     {
35546       pNext = pNext_;
35547       return *this;
35548     }
35549 
setOverallocationBehaviorVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35550     DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
35551     {
35552       overallocationBehavior = overallocationBehavior_;
35553       return *this;
35554     }
35555 
35556 
operator VkDeviceMemoryOverallocationCreateInfoAMD const&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35557     operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
35558     {
35559       return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
35560     }
35561 
operator VkDeviceMemoryOverallocationCreateInfoAMD&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35562     operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
35563     {
35564       return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
35565     }
35566 
35567 
35568 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35569     auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const& ) const = default;
35570 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35571     bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
35572     {
35573       return ( sType == rhs.sType )
35574           && ( pNext == rhs.pNext )
35575           && ( overallocationBehavior == rhs.overallocationBehavior );
35576     }
35577 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD35578     bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
35579     {
35580       return !operator==( rhs );
35581     }
35582 #endif
35583 
35584 
35585 
35586   public:
35587     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
35588     const void* pNext = {};
35589     VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
35590 
35591   };
35592   static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" );
35593   static_assert( std::is_standard_layout<DeviceMemoryOverallocationCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
35594 
35595   template <>
35596   struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
35597   {
35598     using Type = DeviceMemoryOverallocationCreateInfoAMD;
35599   };
35600 
35601   struct DevicePrivateDataCreateInfoEXT
35602   {
35603     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT;
35604 
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35605     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT( uint32_t privateDataSlotRequestCount_ = {} ) VULKAN_HPP_NOEXCEPT
35606       : privateDataSlotRequestCount( privateDataSlotRequestCount_ )
35607     {}
35608 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35609     DevicePrivateDataCreateInfoEXT & operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35610     {
35611       memcpy( &pNext, &rhs.pNext, sizeof( DevicePrivateDataCreateInfoEXT ) - offsetof( DevicePrivateDataCreateInfoEXT, pNext ) );
35612       return *this;
35613     }
35614 
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35615     DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35616     {
35617       *this = rhs;
35618     }
35619 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35620     DevicePrivateDataCreateInfoEXT& operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35621     {
35622       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT const *>(&rhs);
35623       return *this;
35624     }
35625 
setPNextVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35626     DevicePrivateDataCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35627     {
35628       pNext = pNext_;
35629       return *this;
35630     }
35631 
setPrivateDataSlotRequestCountVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35632     DevicePrivateDataCreateInfoEXT & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
35633     {
35634       privateDataSlotRequestCount = privateDataSlotRequestCount_;
35635       return *this;
35636     }
35637 
35638 
operator VkDevicePrivateDataCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35639     operator VkDevicePrivateDataCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
35640     {
35641       return *reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>( this );
35642     }
35643 
operator VkDevicePrivateDataCreateInfoEXT&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35644     operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
35645     {
35646       return *reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>( this );
35647     }
35648 
35649 
35650 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35651     auto operator<=>( DevicePrivateDataCreateInfoEXT const& ) const = default;
35652 #else
operator ==VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35653     bool operator==( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
35654     {
35655       return ( sType == rhs.sType )
35656           && ( pNext == rhs.pNext )
35657           && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
35658     }
35659 
operator !=VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT35660     bool operator!=( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
35661     {
35662       return !operator==( rhs );
35663     }
35664 #endif
35665 
35666 
35667 
35668   public:
35669     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT;
35670     const void* pNext = {};
35671     uint32_t privateDataSlotRequestCount = {};
35672 
35673   };
35674   static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), "struct and wrapper have different size!" );
35675   static_assert( std::is_standard_layout<DevicePrivateDataCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
35676 
35677   template <>
35678   struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfoEXT>
35679   {
35680     using Type = DevicePrivateDataCreateInfoEXT;
35681   };
35682 
35683   struct DeviceQueueGlobalPriorityCreateInfoEXT
35684   {
35685     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
35686 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35687     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow ) VULKAN_HPP_NOEXCEPT
35688       : globalPriority( globalPriority_ )
35689     {}
35690 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35691     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35692     {
35693       memcpy( &pNext, &rhs.pNext, sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) - offsetof( DeviceQueueGlobalPriorityCreateInfoEXT, pNext ) );
35694       return *this;
35695     }
35696 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35697     DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35698     {
35699       *this = rhs;
35700     }
35701 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35702     DeviceQueueGlobalPriorityCreateInfoEXT& operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35703     {
35704       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT const *>(&rhs);
35705       return *this;
35706     }
35707 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35708     DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35709     {
35710       pNext = pNext_;
35711       return *this;
35712     }
35713 
setGlobalPriorityVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35714     DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT
35715     {
35716       globalPriority = globalPriority_;
35717       return *this;
35718     }
35719 
35720 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35721     operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
35722     {
35723       return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
35724     }
35725 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35726     operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
35727     {
35728       return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
35729     }
35730 
35731 
35732 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35733     auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const& ) const = default;
35734 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35735     bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
35736     {
35737       return ( sType == rhs.sType )
35738           && ( pNext == rhs.pNext )
35739           && ( globalPriority == rhs.globalPriority );
35740     }
35741 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT35742     bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
35743     {
35744       return !operator==( rhs );
35745     }
35746 #endif
35747 
35748 
35749 
35750   public:
35751     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
35752     const void* pNext = {};
35753     VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow;
35754 
35755   };
35756   static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" );
35757   static_assert( std::is_standard_layout<DeviceQueueGlobalPriorityCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
35758 
35759   template <>
35760   struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT>
35761   {
35762     using Type = DeviceQueueGlobalPriorityCreateInfoEXT;
35763   };
35764 
35765   struct DeviceQueueInfo2
35766   {
35767     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
35768 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo235769     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {},
35770                                            uint32_t queueFamilyIndex_ = {},
35771                                            uint32_t queueIndex_ = {} ) VULKAN_HPP_NOEXCEPT
35772       : flags( flags_ )
35773       , queueFamilyIndex( queueFamilyIndex_ )
35774       , queueIndex( queueIndex_ )
35775     {}
35776 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo235777     DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
35778     {
35779       memcpy( &pNext, &rhs.pNext, sizeof( DeviceQueueInfo2 ) - offsetof( DeviceQueueInfo2, pNext ) );
35780       return *this;
35781     }
35782 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo235783     DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
35784     {
35785       *this = rhs;
35786     }
35787 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo235788     DeviceQueueInfo2& operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
35789     {
35790       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>(&rhs);
35791       return *this;
35792     }
35793 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueInfo235794     DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35795     {
35796       pNext = pNext_;
35797       return *this;
35798     }
35799 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueInfo235800     DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
35801     {
35802       flags = flags_;
35803       return *this;
35804     }
35805 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo235806     DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
35807     {
35808       queueFamilyIndex = queueFamilyIndex_;
35809       return *this;
35810     }
35811 
setQueueIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo235812     DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
35813     {
35814       queueIndex = queueIndex_;
35815       return *this;
35816     }
35817 
35818 
operator VkDeviceQueueInfo2 const&VULKAN_HPP_NAMESPACE::DeviceQueueInfo235819     operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT
35820     {
35821       return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
35822     }
35823 
operator VkDeviceQueueInfo2&VULKAN_HPP_NAMESPACE::DeviceQueueInfo235824     operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
35825     {
35826       return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
35827     }
35828 
35829 
35830 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35831     auto operator<=>( DeviceQueueInfo2 const& ) const = default;
35832 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueInfo235833     bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
35834     {
35835       return ( sType == rhs.sType )
35836           && ( pNext == rhs.pNext )
35837           && ( flags == rhs.flags )
35838           && ( queueFamilyIndex == rhs.queueFamilyIndex )
35839           && ( queueIndex == rhs.queueIndex );
35840     }
35841 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueInfo235842     bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
35843     {
35844       return !operator==( rhs );
35845     }
35846 #endif
35847 
35848 
35849 
35850   public:
35851     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
35852     const void* pNext = {};
35853     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
35854     uint32_t queueFamilyIndex = {};
35855     uint32_t queueIndex = {};
35856 
35857   };
35858   static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" );
35859   static_assert( std::is_standard_layout<DeviceQueueInfo2>::value, "struct wrapper is not a standard layout!" );
35860 
35861   template <>
35862   struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
35863   {
35864     using Type = DeviceQueueInfo2;
35865   };
35866 
35867   struct DispatchIndirectCommand
35868   {
35869 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand35870     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( uint32_t x_ = {},
35871                                                   uint32_t y_ = {},
35872                                                   uint32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
35873       : x( x_ )
35874       , y( y_ )
35875       , z( z_ )
35876     {}
35877 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand35878     DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
35879     {
35880       *this = rhs;
35881     }
35882 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand35883     DispatchIndirectCommand& operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
35884     {
35885       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>(&rhs);
35886       return *this;
35887     }
35888 
setXVULKAN_HPP_NAMESPACE::DispatchIndirectCommand35889     DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
35890     {
35891       x = x_;
35892       return *this;
35893     }
35894 
setYVULKAN_HPP_NAMESPACE::DispatchIndirectCommand35895     DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
35896     {
35897       y = y_;
35898       return *this;
35899     }
35900 
setZVULKAN_HPP_NAMESPACE::DispatchIndirectCommand35901     DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
35902     {
35903       z = z_;
35904       return *this;
35905     }
35906 
35907 
operator VkDispatchIndirectCommand const&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand35908     operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
35909     {
35910       return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
35911     }
35912 
operator VkDispatchIndirectCommand&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand35913     operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
35914     {
35915       return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
35916     }
35917 
35918 
35919 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35920     auto operator<=>( DispatchIndirectCommand const& ) const = default;
35921 #else
operator ==VULKAN_HPP_NAMESPACE::DispatchIndirectCommand35922     bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
35923     {
35924       return ( x == rhs.x )
35925           && ( y == rhs.y )
35926           && ( z == rhs.z );
35927     }
35928 
operator !=VULKAN_HPP_NAMESPACE::DispatchIndirectCommand35929     bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
35930     {
35931       return !operator==( rhs );
35932     }
35933 #endif
35934 
35935 
35936 
35937   public:
35938     uint32_t x = {};
35939     uint32_t y = {};
35940     uint32_t z = {};
35941 
35942   };
35943   static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" );
35944   static_assert( std::is_standard_layout<DispatchIndirectCommand>::value, "struct wrapper is not a standard layout!" );
35945 
35946   struct DisplayEventInfoEXT
35947   {
35948     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
35949 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35950     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut ) VULKAN_HPP_NOEXCEPT
35951       : displayEvent( displayEvent_ )
35952     {}
35953 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35954     DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35955     {
35956       memcpy( &pNext, &rhs.pNext, sizeof( DisplayEventInfoEXT ) - offsetof( DisplayEventInfoEXT, pNext ) );
35957       return *this;
35958     }
35959 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35960     DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35961     {
35962       *this = rhs;
35963     }
35964 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35965     DisplayEventInfoEXT& operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35966     {
35967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>(&rhs);
35968       return *this;
35969     }
35970 
setPNextVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35971     DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35972     {
35973       pNext = pNext_;
35974       return *this;
35975     }
35976 
setDisplayEventVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35977     DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
35978     {
35979       displayEvent = displayEvent_;
35980       return *this;
35981     }
35982 
35983 
operator VkDisplayEventInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35984     operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
35985     {
35986       return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
35987     }
35988 
operator VkDisplayEventInfoEXT&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35989     operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
35990     {
35991       return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
35992     }
35993 
35994 
35995 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35996     auto operator<=>( DisplayEventInfoEXT const& ) const = default;
35997 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT35998     bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
35999     {
36000       return ( sType == rhs.sType )
36001           && ( pNext == rhs.pNext )
36002           && ( displayEvent == rhs.displayEvent );
36003     }
36004 
operator !=VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT36005     bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
36006     {
36007       return !operator==( rhs );
36008     }
36009 #endif
36010 
36011 
36012 
36013   public:
36014     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
36015     const void* pNext = {};
36016     VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
36017 
36018   };
36019   static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" );
36020   static_assert( std::is_standard_layout<DisplayEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
36021 
36022   template <>
36023   struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
36024   {
36025     using Type = DisplayEventInfoEXT;
36026   };
36027 
36028   struct DisplayModeParametersKHR
36029   {
36030 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36031     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {},
36032                                                    uint32_t refreshRate_ = {} ) VULKAN_HPP_NOEXCEPT
36033       : visibleRegion( visibleRegion_ )
36034       , refreshRate( refreshRate_ )
36035     {}
36036 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36037     DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36038     {
36039       *this = rhs;
36040     }
36041 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36042     DisplayModeParametersKHR& operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36043     {
36044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>(&rhs);
36045       return *this;
36046     }
36047 
setVisibleRegionVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36048     DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
36049     {
36050       visibleRegion = visibleRegion_;
36051       return *this;
36052     }
36053 
setRefreshRateVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36054     DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
36055     {
36056       refreshRate = refreshRate_;
36057       return *this;
36058     }
36059 
36060 
operator VkDisplayModeParametersKHR const&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36061     operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT
36062     {
36063       return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
36064     }
36065 
operator VkDisplayModeParametersKHR&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36066     operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
36067     {
36068       return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
36069     }
36070 
36071 
36072 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36073     auto operator<=>( DisplayModeParametersKHR const& ) const = default;
36074 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36075     bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36076     {
36077       return ( visibleRegion == rhs.visibleRegion )
36078           && ( refreshRate == rhs.refreshRate );
36079     }
36080 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR36081     bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36082     {
36083       return !operator==( rhs );
36084     }
36085 #endif
36086 
36087 
36088 
36089   public:
36090     VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
36091     uint32_t refreshRate = {};
36092 
36093   };
36094   static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" );
36095   static_assert( std::is_standard_layout<DisplayModeParametersKHR>::value, "struct wrapper is not a standard layout!" );
36096 
36097   struct DisplayModeCreateInfoKHR
36098   {
36099     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
36100 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36101     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {},
36102                                                    VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT
36103       : flags( flags_ )
36104       , parameters( parameters_ )
36105     {}
36106 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36107     DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36108     {
36109       memcpy( &pNext, &rhs.pNext, sizeof( DisplayModeCreateInfoKHR ) - offsetof( DisplayModeCreateInfoKHR, pNext ) );
36110       return *this;
36111     }
36112 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36113     DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36114     {
36115       *this = rhs;
36116     }
36117 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36118     DisplayModeCreateInfoKHR& operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36119     {
36120       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>(&rhs);
36121       return *this;
36122     }
36123 
setPNextVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36124     DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36125     {
36126       pNext = pNext_;
36127       return *this;
36128     }
36129 
setFlagsVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36130     DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
36131     {
36132       flags = flags_;
36133       return *this;
36134     }
36135 
setParametersVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36136     DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
36137     {
36138       parameters = parameters_;
36139       return *this;
36140     }
36141 
36142 
operator VkDisplayModeCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36143     operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
36144     {
36145       return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
36146     }
36147 
operator VkDisplayModeCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36148     operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
36149     {
36150       return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
36151     }
36152 
36153 
36154 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36155     auto operator<=>( DisplayModeCreateInfoKHR const& ) const = default;
36156 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36157     bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36158     {
36159       return ( sType == rhs.sType )
36160           && ( pNext == rhs.pNext )
36161           && ( flags == rhs.flags )
36162           && ( parameters == rhs.parameters );
36163     }
36164 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR36165     bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36166     {
36167       return !operator==( rhs );
36168     }
36169 #endif
36170 
36171 
36172 
36173   public:
36174     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
36175     const void* pNext = {};
36176     VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
36177     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
36178 
36179   };
36180   static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" );
36181   static_assert( std::is_standard_layout<DisplayModeCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
36182 
36183   template <>
36184   struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
36185   {
36186     using Type = DisplayModeCreateInfoKHR;
36187   };
36188 
36189   struct DisplayModePropertiesKHR
36190   {
36191 
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR36192     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {},
36193                                                    VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT
36194       : displayMode( displayMode_ )
36195       , parameters( parameters_ )
36196     {}
36197 
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR36198     DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36199     {
36200       *this = rhs;
36201     }
36202 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR36203     DisplayModePropertiesKHR& operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36204     {
36205       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>(&rhs);
36206       return *this;
36207     }
36208 
36209 
operator VkDisplayModePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR36210     operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
36211     {
36212       return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
36213     }
36214 
operator VkDisplayModePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR36215     operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
36216     {
36217       return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
36218     }
36219 
36220 
36221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36222     auto operator<=>( DisplayModePropertiesKHR const& ) const = default;
36223 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR36224     bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36225     {
36226       return ( displayMode == rhs.displayMode )
36227           && ( parameters == rhs.parameters );
36228     }
36229 
operator !=VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR36230     bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36231     {
36232       return !operator==( rhs );
36233     }
36234 #endif
36235 
36236 
36237 
36238   public:
36239     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
36240     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
36241 
36242   };
36243   static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
36244   static_assert( std::is_standard_layout<DisplayModePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
36245 
36246   struct DisplayModeProperties2KHR
36247   {
36248     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
36249 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36250     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {} ) VULKAN_HPP_NOEXCEPT
36251       : displayModeProperties( displayModeProperties_ )
36252     {}
36253 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36254     DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36255     {
36256       memcpy( &pNext, &rhs.pNext, sizeof( DisplayModeProperties2KHR ) - offsetof( DisplayModeProperties2KHR, pNext ) );
36257       return *this;
36258     }
36259 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36260     DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36261     {
36262       *this = rhs;
36263     }
36264 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36265     DisplayModeProperties2KHR& operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36266     {
36267       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>(&rhs);
36268       return *this;
36269     }
36270 
36271 
operator VkDisplayModeProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36272     operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
36273     {
36274       return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
36275     }
36276 
operator VkDisplayModeProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36277     operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
36278     {
36279       return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
36280     }
36281 
36282 
36283 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36284     auto operator<=>( DisplayModeProperties2KHR const& ) const = default;
36285 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36286     bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36287     {
36288       return ( sType == rhs.sType )
36289           && ( pNext == rhs.pNext )
36290           && ( displayModeProperties == rhs.displayModeProperties );
36291     }
36292 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR36293     bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36294     {
36295       return !operator==( rhs );
36296     }
36297 #endif
36298 
36299 
36300 
36301   public:
36302     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
36303     void* pNext = {};
36304     VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
36305 
36306   };
36307   static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" );
36308   static_assert( std::is_standard_layout<DisplayModeProperties2KHR>::value, "struct wrapper is not a standard layout!" );
36309 
36310   template <>
36311   struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
36312   {
36313     using Type = DisplayModeProperties2KHR;
36314   };
36315 
36316   struct DisplayNativeHdrSurfaceCapabilitiesAMD
36317   {
36318     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
36319 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36320     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {} ) VULKAN_HPP_NOEXCEPT
36321       : localDimmingSupport( localDimmingSupport_ )
36322     {}
36323 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36324     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
36325     {
36326       memcpy( &pNext, &rhs.pNext, sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) - offsetof( DisplayNativeHdrSurfaceCapabilitiesAMD, pNext ) );
36327       return *this;
36328     }
36329 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36330     DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
36331     {
36332       *this = rhs;
36333     }
36334 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36335     DisplayNativeHdrSurfaceCapabilitiesAMD& operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
36336     {
36337       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>(&rhs);
36338       return *this;
36339     }
36340 
36341 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36342     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT
36343     {
36344       return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
36345     }
36346 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36347     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
36348     {
36349       return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
36350     }
36351 
36352 
36353 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36354     auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const& ) const = default;
36355 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36356     bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
36357     {
36358       return ( sType == rhs.sType )
36359           && ( pNext == rhs.pNext )
36360           && ( localDimmingSupport == rhs.localDimmingSupport );
36361     }
36362 
operator !=VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD36363     bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
36364     {
36365       return !operator==( rhs );
36366     }
36367 #endif
36368 
36369 
36370 
36371   public:
36372     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
36373     void* pNext = {};
36374     VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
36375 
36376   };
36377   static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" );
36378   static_assert( std::is_standard_layout<DisplayNativeHdrSurfaceCapabilitiesAMD>::value, "struct wrapper is not a standard layout!" );
36379 
36380   template <>
36381   struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
36382   {
36383     using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
36384   };
36385 
36386   struct DisplayPlaneCapabilitiesKHR
36387   {
36388 
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR36389     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {},
36390                                                       VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {},
36391                                                       VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {},
36392                                                       VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {},
36393                                                       VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {},
36394                                                       VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {},
36395                                                       VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {},
36396                                                       VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {},
36397                                                       VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {} ) VULKAN_HPP_NOEXCEPT
36398       : supportedAlpha( supportedAlpha_ )
36399       , minSrcPosition( minSrcPosition_ )
36400       , maxSrcPosition( maxSrcPosition_ )
36401       , minSrcExtent( minSrcExtent_ )
36402       , maxSrcExtent( maxSrcExtent_ )
36403       , minDstPosition( minDstPosition_ )
36404       , maxDstPosition( maxDstPosition_ )
36405       , minDstExtent( minDstExtent_ )
36406       , maxDstExtent( maxDstExtent_ )
36407     {}
36408 
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR36409     DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36410     {
36411       *this = rhs;
36412     }
36413 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR36414     DisplayPlaneCapabilitiesKHR& operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36415     {
36416       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>(&rhs);
36417       return *this;
36418     }
36419 
36420 
operator VkDisplayPlaneCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR36421     operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
36422     {
36423       return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
36424     }
36425 
operator VkDisplayPlaneCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR36426     operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
36427     {
36428       return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
36429     }
36430 
36431 
36432 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36433     auto operator<=>( DisplayPlaneCapabilitiesKHR const& ) const = default;
36434 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR36435     bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36436     {
36437       return ( supportedAlpha == rhs.supportedAlpha )
36438           && ( minSrcPosition == rhs.minSrcPosition )
36439           && ( maxSrcPosition == rhs.maxSrcPosition )
36440           && ( minSrcExtent == rhs.minSrcExtent )
36441           && ( maxSrcExtent == rhs.maxSrcExtent )
36442           && ( minDstPosition == rhs.minDstPosition )
36443           && ( maxDstPosition == rhs.maxDstPosition )
36444           && ( minDstExtent == rhs.minDstExtent )
36445           && ( maxDstExtent == rhs.maxDstExtent );
36446     }
36447 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR36448     bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36449     {
36450       return !operator==( rhs );
36451     }
36452 #endif
36453 
36454 
36455 
36456   public:
36457     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
36458     VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
36459     VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
36460     VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
36461     VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
36462     VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
36463     VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
36464     VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
36465     VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
36466 
36467   };
36468   static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" );
36469   static_assert( std::is_standard_layout<DisplayPlaneCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
36470 
36471   struct DisplayPlaneCapabilities2KHR
36472   {
36473     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
36474 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36475     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {} ) VULKAN_HPP_NOEXCEPT
36476       : capabilities( capabilities_ )
36477     {}
36478 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36479     DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36480     {
36481       memcpy( &pNext, &rhs.pNext, sizeof( DisplayPlaneCapabilities2KHR ) - offsetof( DisplayPlaneCapabilities2KHR, pNext ) );
36482       return *this;
36483     }
36484 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36485     DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36486     {
36487       *this = rhs;
36488     }
36489 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36490     DisplayPlaneCapabilities2KHR& operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36491     {
36492       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>(&rhs);
36493       return *this;
36494     }
36495 
36496 
operator VkDisplayPlaneCapabilities2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36497     operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
36498     {
36499       return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
36500     }
36501 
operator VkDisplayPlaneCapabilities2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36502     operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
36503     {
36504       return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
36505     }
36506 
36507 
36508 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36509     auto operator<=>( DisplayPlaneCapabilities2KHR const& ) const = default;
36510 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36511     bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36512     {
36513       return ( sType == rhs.sType )
36514           && ( pNext == rhs.pNext )
36515           && ( capabilities == rhs.capabilities );
36516     }
36517 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR36518     bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36519     {
36520       return !operator==( rhs );
36521     }
36522 #endif
36523 
36524 
36525 
36526   public:
36527     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
36528     void* pNext = {};
36529     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
36530 
36531   };
36532   static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" );
36533   static_assert( std::is_standard_layout<DisplayPlaneCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
36534 
36535   template <>
36536   struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
36537   {
36538     using Type = DisplayPlaneCapabilities2KHR;
36539   };
36540 
36541   struct DisplayPlaneInfo2KHR
36542   {
36543     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
36544 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36545     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {},
36546                                                uint32_t planeIndex_ = {} ) VULKAN_HPP_NOEXCEPT
36547       : mode( mode_ )
36548       , planeIndex( planeIndex_ )
36549     {}
36550 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36551     DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36552     {
36553       memcpy( &pNext, &rhs.pNext, sizeof( DisplayPlaneInfo2KHR ) - offsetof( DisplayPlaneInfo2KHR, pNext ) );
36554       return *this;
36555     }
36556 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36557     DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36558     {
36559       *this = rhs;
36560     }
36561 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36562     DisplayPlaneInfo2KHR& operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36563     {
36564       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>(&rhs);
36565       return *this;
36566     }
36567 
setPNextVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36568     DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36569     {
36570       pNext = pNext_;
36571       return *this;
36572     }
36573 
setModeVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36574     DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
36575     {
36576       mode = mode_;
36577       return *this;
36578     }
36579 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36580     DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
36581     {
36582       planeIndex = planeIndex_;
36583       return *this;
36584     }
36585 
36586 
operator VkDisplayPlaneInfo2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36587     operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
36588     {
36589       return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
36590     }
36591 
operator VkDisplayPlaneInfo2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36592     operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
36593     {
36594       return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
36595     }
36596 
36597 
36598 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36599     auto operator<=>( DisplayPlaneInfo2KHR const& ) const = default;
36600 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36601     bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36602     {
36603       return ( sType == rhs.sType )
36604           && ( pNext == rhs.pNext )
36605           && ( mode == rhs.mode )
36606           && ( planeIndex == rhs.planeIndex );
36607     }
36608 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR36609     bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36610     {
36611       return !operator==( rhs );
36612     }
36613 #endif
36614 
36615 
36616 
36617   public:
36618     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
36619     const void* pNext = {};
36620     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
36621     uint32_t planeIndex = {};
36622 
36623   };
36624   static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" );
36625   static_assert( std::is_standard_layout<DisplayPlaneInfo2KHR>::value, "struct wrapper is not a standard layout!" );
36626 
36627   template <>
36628   struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
36629   {
36630     using Type = DisplayPlaneInfo2KHR;
36631   };
36632 
36633   struct DisplayPlanePropertiesKHR
36634   {
36635 
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR36636     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {},
36637                                                     uint32_t currentStackIndex_ = {} ) VULKAN_HPP_NOEXCEPT
36638       : currentDisplay( currentDisplay_ )
36639       , currentStackIndex( currentStackIndex_ )
36640     {}
36641 
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR36642     DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36643     {
36644       *this = rhs;
36645     }
36646 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR36647     DisplayPlanePropertiesKHR& operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36648     {
36649       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>(&rhs);
36650       return *this;
36651     }
36652 
36653 
operator VkDisplayPlanePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR36654     operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
36655     {
36656       return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
36657     }
36658 
operator VkDisplayPlanePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR36659     operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
36660     {
36661       return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
36662     }
36663 
36664 
36665 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36666     auto operator<=>( DisplayPlanePropertiesKHR const& ) const = default;
36667 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR36668     bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36669     {
36670       return ( currentDisplay == rhs.currentDisplay )
36671           && ( currentStackIndex == rhs.currentStackIndex );
36672     }
36673 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR36674     bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36675     {
36676       return !operator==( rhs );
36677     }
36678 #endif
36679 
36680 
36681 
36682   public:
36683     VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
36684     uint32_t currentStackIndex = {};
36685 
36686   };
36687   static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" );
36688   static_assert( std::is_standard_layout<DisplayPlanePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
36689 
36690   struct DisplayPlaneProperties2KHR
36691   {
36692     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
36693 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36694     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {} ) VULKAN_HPP_NOEXCEPT
36695       : displayPlaneProperties( displayPlaneProperties_ )
36696     {}
36697 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36698     DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36699     {
36700       memcpy( &pNext, &rhs.pNext, sizeof( DisplayPlaneProperties2KHR ) - offsetof( DisplayPlaneProperties2KHR, pNext ) );
36701       return *this;
36702     }
36703 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36704     DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36705     {
36706       *this = rhs;
36707     }
36708 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36709     DisplayPlaneProperties2KHR& operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
36710     {
36711       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>(&rhs);
36712       return *this;
36713     }
36714 
36715 
operator VkDisplayPlaneProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36716     operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
36717     {
36718       return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
36719     }
36720 
operator VkDisplayPlaneProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36721     operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
36722     {
36723       return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
36724     }
36725 
36726 
36727 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36728     auto operator<=>( DisplayPlaneProperties2KHR const& ) const = default;
36729 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36730     bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36731     {
36732       return ( sType == rhs.sType )
36733           && ( pNext == rhs.pNext )
36734           && ( displayPlaneProperties == rhs.displayPlaneProperties );
36735     }
36736 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR36737     bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36738     {
36739       return !operator==( rhs );
36740     }
36741 #endif
36742 
36743 
36744 
36745   public:
36746     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
36747     void* pNext = {};
36748     VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
36749 
36750   };
36751   static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" );
36752   static_assert( std::is_standard_layout<DisplayPlaneProperties2KHR>::value, "struct wrapper is not a standard layout!" );
36753 
36754   template <>
36755   struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
36756   {
36757     using Type = DisplayPlaneProperties2KHR;
36758   };
36759 
36760   struct DisplayPowerInfoEXT
36761   {
36762     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
36763 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36764     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff ) VULKAN_HPP_NOEXCEPT
36765       : powerState( powerState_ )
36766     {}
36767 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36768     DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
36769     {
36770       memcpy( &pNext, &rhs.pNext, sizeof( DisplayPowerInfoEXT ) - offsetof( DisplayPowerInfoEXT, pNext ) );
36771       return *this;
36772     }
36773 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36774     DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
36775     {
36776       *this = rhs;
36777     }
36778 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36779     DisplayPowerInfoEXT& operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
36780     {
36781       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>(&rhs);
36782       return *this;
36783     }
36784 
setPNextVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36785     DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36786     {
36787       pNext = pNext_;
36788       return *this;
36789     }
36790 
setPowerStateVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36791     DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
36792     {
36793       powerState = powerState_;
36794       return *this;
36795     }
36796 
36797 
operator VkDisplayPowerInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36798     operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
36799     {
36800       return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
36801     }
36802 
operator VkDisplayPowerInfoEXT&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36803     operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
36804     {
36805       return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
36806     }
36807 
36808 
36809 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36810     auto operator<=>( DisplayPowerInfoEXT const& ) const = default;
36811 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36812     bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
36813     {
36814       return ( sType == rhs.sType )
36815           && ( pNext == rhs.pNext )
36816           && ( powerState == rhs.powerState );
36817     }
36818 
operator !=VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT36819     bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
36820     {
36821       return !operator==( rhs );
36822     }
36823 #endif
36824 
36825 
36826 
36827   public:
36828     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
36829     const void* pNext = {};
36830     VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
36831 
36832   };
36833   static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" );
36834   static_assert( std::is_standard_layout<DisplayPowerInfoEXT>::value, "struct wrapper is not a standard layout!" );
36835 
36836   template <>
36837   struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
36838   {
36839     using Type = DisplayPowerInfoEXT;
36840   };
36841 
36842   struct DisplayPresentInfoKHR
36843   {
36844     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
36845 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36846     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {},
36847                                                 VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {},
36848                                                 VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {} ) VULKAN_HPP_NOEXCEPT
36849       : srcRect( srcRect_ )
36850       , dstRect( dstRect_ )
36851       , persistent( persistent_ )
36852     {}
36853 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36854     DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36855     {
36856       memcpy( &pNext, &rhs.pNext, sizeof( DisplayPresentInfoKHR ) - offsetof( DisplayPresentInfoKHR, pNext ) );
36857       return *this;
36858     }
36859 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36860     DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36861     {
36862       *this = rhs;
36863     }
36864 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36865     DisplayPresentInfoKHR& operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36866     {
36867       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>(&rhs);
36868       return *this;
36869     }
36870 
setPNextVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36871     DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36872     {
36873       pNext = pNext_;
36874       return *this;
36875     }
36876 
setSrcRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36877     DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
36878     {
36879       srcRect = srcRect_;
36880       return *this;
36881     }
36882 
setDstRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36883     DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
36884     {
36885       dstRect = dstRect_;
36886       return *this;
36887     }
36888 
setPersistentVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36889     DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
36890     {
36891       persistent = persistent_;
36892       return *this;
36893     }
36894 
36895 
operator VkDisplayPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36896     operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
36897     {
36898       return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
36899     }
36900 
operator VkDisplayPresentInfoKHR&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36901     operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
36902     {
36903       return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
36904     }
36905 
36906 
36907 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36908     auto operator<=>( DisplayPresentInfoKHR const& ) const = default;
36909 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36910     bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36911     {
36912       return ( sType == rhs.sType )
36913           && ( pNext == rhs.pNext )
36914           && ( srcRect == rhs.srcRect )
36915           && ( dstRect == rhs.dstRect )
36916           && ( persistent == rhs.persistent );
36917     }
36918 
operator !=VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR36919     bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36920     {
36921       return !operator==( rhs );
36922     }
36923 #endif
36924 
36925 
36926 
36927   public:
36928     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
36929     const void* pNext = {};
36930     VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
36931     VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
36932     VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
36933 
36934   };
36935   static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" );
36936   static_assert( std::is_standard_layout<DisplayPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
36937 
36938   template <>
36939   struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
36940   {
36941     using Type = DisplayPresentInfoKHR;
36942   };
36943 
36944   struct DisplayPropertiesKHR
36945   {
36946 
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR36947     VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {},
36948                                                const char* displayName_ = {},
36949                                                VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {},
36950                                                VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {},
36951                                                VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
36952                                                VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {},
36953                                                VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {} ) VULKAN_HPP_NOEXCEPT
36954       : display( display_ )
36955       , displayName( displayName_ )
36956       , physicalDimensions( physicalDimensions_ )
36957       , physicalResolution( physicalResolution_ )
36958       , supportedTransforms( supportedTransforms_ )
36959       , planeReorderPossible( planeReorderPossible_ )
36960       , persistentContent( persistentContent_ )
36961     {}
36962 
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR36963     DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36964     {
36965       *this = rhs;
36966     }
36967 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR36968     DisplayPropertiesKHR& operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36969     {
36970       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>(&rhs);
36971       return *this;
36972     }
36973 
36974 
operator VkDisplayPropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR36975     operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
36976     {
36977       return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
36978     }
36979 
operator VkDisplayPropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR36980     operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
36981     {
36982       return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
36983     }
36984 
36985 
36986 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36987     auto operator<=>( DisplayPropertiesKHR const& ) const = default;
36988 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR36989     bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
36990     {
36991       return ( display == rhs.display )
36992           && ( displayName == rhs.displayName )
36993           && ( physicalDimensions == rhs.physicalDimensions )
36994           && ( physicalResolution == rhs.physicalResolution )
36995           && ( supportedTransforms == rhs.supportedTransforms )
36996           && ( planeReorderPossible == rhs.planeReorderPossible )
36997           && ( persistentContent == rhs.persistentContent );
36998     }
36999 
operator !=VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR37000     bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
37001     {
37002       return !operator==( rhs );
37003     }
37004 #endif
37005 
37006 
37007 
37008   public:
37009     VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
37010     const char* displayName = {};
37011     VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
37012     VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
37013     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
37014     VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
37015     VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
37016 
37017   };
37018   static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" );
37019   static_assert( std::is_standard_layout<DisplayPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
37020 
37021   struct DisplayProperties2KHR
37022   {
37023     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
37024 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR37025     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {} ) VULKAN_HPP_NOEXCEPT
37026       : displayProperties( displayProperties_ )
37027     {}
37028 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR37029     DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
37030     {
37031       memcpy( &pNext, &rhs.pNext, sizeof( DisplayProperties2KHR ) - offsetof( DisplayProperties2KHR, pNext ) );
37032       return *this;
37033     }
37034 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR37035     DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
37036     {
37037       *this = rhs;
37038     }
37039 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR37040     DisplayProperties2KHR& operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
37041     {
37042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>(&rhs);
37043       return *this;
37044     }
37045 
37046 
operator VkDisplayProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR37047     operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
37048     {
37049       return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
37050     }
37051 
operator VkDisplayProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR37052     operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
37053     {
37054       return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
37055     }
37056 
37057 
37058 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37059     auto operator<=>( DisplayProperties2KHR const& ) const = default;
37060 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayProperties2KHR37061     bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
37062     {
37063       return ( sType == rhs.sType )
37064           && ( pNext == rhs.pNext )
37065           && ( displayProperties == rhs.displayProperties );
37066     }
37067 
operator !=VULKAN_HPP_NAMESPACE::DisplayProperties2KHR37068     bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
37069     {
37070       return !operator==( rhs );
37071     }
37072 #endif
37073 
37074 
37075 
37076   public:
37077     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
37078     void* pNext = {};
37079     VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
37080 
37081   };
37082   static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" );
37083   static_assert( std::is_standard_layout<DisplayProperties2KHR>::value, "struct wrapper is not a standard layout!" );
37084 
37085   template <>
37086   struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
37087   {
37088     using Type = DisplayProperties2KHR;
37089   };
37090 
37091   struct DisplaySurfaceCreateInfoKHR
37092   {
37093     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
37094 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37095     VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {},
37096                                                       VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {},
37097                                                       uint32_t planeIndex_ = {},
37098                                                       uint32_t planeStackIndex_ = {},
37099                                                       VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
37100                                                       float globalAlpha_ = {},
37101                                                       VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque,
37102                                                       VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT
37103       : flags( flags_ )
37104       , displayMode( displayMode_ )
37105       , planeIndex( planeIndex_ )
37106       , planeStackIndex( planeStackIndex_ )
37107       , transform( transform_ )
37108       , globalAlpha( globalAlpha_ )
37109       , alphaMode( alphaMode_ )
37110       , imageExtent( imageExtent_ )
37111     {}
37112 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37113     DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
37114     {
37115       memcpy( &pNext, &rhs.pNext, sizeof( DisplaySurfaceCreateInfoKHR ) - offsetof( DisplaySurfaceCreateInfoKHR, pNext ) );
37116       return *this;
37117     }
37118 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37119     DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
37120     {
37121       *this = rhs;
37122     }
37123 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37124     DisplaySurfaceCreateInfoKHR& operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
37125     {
37126       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>(&rhs);
37127       return *this;
37128     }
37129 
setPNextVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37130     DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37131     {
37132       pNext = pNext_;
37133       return *this;
37134     }
37135 
setFlagsVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37136     DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
37137     {
37138       flags = flags_;
37139       return *this;
37140     }
37141 
setDisplayModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37142     DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
37143     {
37144       displayMode = displayMode_;
37145       return *this;
37146     }
37147 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37148     DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
37149     {
37150       planeIndex = planeIndex_;
37151       return *this;
37152     }
37153 
setPlaneStackIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37154     DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
37155     {
37156       planeStackIndex = planeStackIndex_;
37157       return *this;
37158     }
37159 
setTransformVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37160     DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
37161     {
37162       transform = transform_;
37163       return *this;
37164     }
37165 
setGlobalAlphaVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37166     DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
37167     {
37168       globalAlpha = globalAlpha_;
37169       return *this;
37170     }
37171 
setAlphaModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37172     DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
37173     {
37174       alphaMode = alphaMode_;
37175       return *this;
37176     }
37177 
setImageExtentVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37178     DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
37179     {
37180       imageExtent = imageExtent_;
37181       return *this;
37182     }
37183 
37184 
operator VkDisplaySurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37185     operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
37186     {
37187       return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
37188     }
37189 
operator VkDisplaySurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37190     operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
37191     {
37192       return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
37193     }
37194 
37195 
37196 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37197     auto operator<=>( DisplaySurfaceCreateInfoKHR const& ) const = default;
37198 #else
operator ==VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37199     bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
37200     {
37201       return ( sType == rhs.sType )
37202           && ( pNext == rhs.pNext )
37203           && ( flags == rhs.flags )
37204           && ( displayMode == rhs.displayMode )
37205           && ( planeIndex == rhs.planeIndex )
37206           && ( planeStackIndex == rhs.planeStackIndex )
37207           && ( transform == rhs.transform )
37208           && ( globalAlpha == rhs.globalAlpha )
37209           && ( alphaMode == rhs.alphaMode )
37210           && ( imageExtent == rhs.imageExtent );
37211     }
37212 
operator !=VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR37213     bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
37214     {
37215       return !operator==( rhs );
37216     }
37217 #endif
37218 
37219 
37220 
37221   public:
37222     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
37223     const void* pNext = {};
37224     VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
37225     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
37226     uint32_t planeIndex = {};
37227     uint32_t planeStackIndex = {};
37228     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
37229     float globalAlpha = {};
37230     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
37231     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
37232 
37233   };
37234   static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
37235   static_assert( std::is_standard_layout<DisplaySurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
37236 
37237   template <>
37238   struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
37239   {
37240     using Type = DisplaySurfaceCreateInfoKHR;
37241   };
37242 
37243   struct DrawIndexedIndirectCommand
37244   {
37245 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37246     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( uint32_t indexCount_ = {},
37247                                                      uint32_t instanceCount_ = {},
37248                                                      uint32_t firstIndex_ = {},
37249                                                      int32_t vertexOffset_ = {},
37250                                                      uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
37251       : indexCount( indexCount_ )
37252       , instanceCount( instanceCount_ )
37253       , firstIndex( firstIndex_ )
37254       , vertexOffset( vertexOffset_ )
37255       , firstInstance( firstInstance_ )
37256     {}
37257 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37258     DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
37259     {
37260       *this = rhs;
37261     }
37262 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37263     DrawIndexedIndirectCommand& operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
37264     {
37265       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>(&rhs);
37266       return *this;
37267     }
37268 
setIndexCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37269     DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
37270     {
37271       indexCount = indexCount_;
37272       return *this;
37273     }
37274 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37275     DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
37276     {
37277       instanceCount = instanceCount_;
37278       return *this;
37279     }
37280 
setFirstIndexVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37281     DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
37282     {
37283       firstIndex = firstIndex_;
37284       return *this;
37285     }
37286 
setVertexOffsetVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37287     DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
37288     {
37289       vertexOffset = vertexOffset_;
37290       return *this;
37291     }
37292 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37293     DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
37294     {
37295       firstInstance = firstInstance_;
37296       return *this;
37297     }
37298 
37299 
operator VkDrawIndexedIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37300     operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
37301     {
37302       return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
37303     }
37304 
operator VkDrawIndexedIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37305     operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
37306     {
37307       return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
37308     }
37309 
37310 
37311 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37312     auto operator<=>( DrawIndexedIndirectCommand const& ) const = default;
37313 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37314     bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
37315     {
37316       return ( indexCount == rhs.indexCount )
37317           && ( instanceCount == rhs.instanceCount )
37318           && ( firstIndex == rhs.firstIndex )
37319           && ( vertexOffset == rhs.vertexOffset )
37320           && ( firstInstance == rhs.firstInstance );
37321     }
37322 
operator !=VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand37323     bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
37324     {
37325       return !operator==( rhs );
37326     }
37327 #endif
37328 
37329 
37330 
37331   public:
37332     uint32_t indexCount = {};
37333     uint32_t instanceCount = {};
37334     uint32_t firstIndex = {};
37335     int32_t vertexOffset = {};
37336     uint32_t firstInstance = {};
37337 
37338   };
37339   static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" );
37340   static_assert( std::is_standard_layout<DrawIndexedIndirectCommand>::value, "struct wrapper is not a standard layout!" );
37341 
37342   struct DrawIndirectCommand
37343   {
37344 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand37345     VULKAN_HPP_CONSTEXPR DrawIndirectCommand( uint32_t vertexCount_ = {},
37346                                               uint32_t instanceCount_ = {},
37347                                               uint32_t firstVertex_ = {},
37348                                               uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
37349       : vertexCount( vertexCount_ )
37350       , instanceCount( instanceCount_ )
37351       , firstVertex( firstVertex_ )
37352       , firstInstance( firstInstance_ )
37353     {}
37354 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand37355     DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
37356     {
37357       *this = rhs;
37358     }
37359 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand37360     DrawIndirectCommand& operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
37361     {
37362       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>(&rhs);
37363       return *this;
37364     }
37365 
setVertexCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand37366     DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
37367     {
37368       vertexCount = vertexCount_;
37369       return *this;
37370     }
37371 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand37372     DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
37373     {
37374       instanceCount = instanceCount_;
37375       return *this;
37376     }
37377 
setFirstVertexVULKAN_HPP_NAMESPACE::DrawIndirectCommand37378     DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
37379     {
37380       firstVertex = firstVertex_;
37381       return *this;
37382     }
37383 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndirectCommand37384     DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
37385     {
37386       firstInstance = firstInstance_;
37387       return *this;
37388     }
37389 
37390 
operator VkDrawIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndirectCommand37391     operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
37392     {
37393       return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
37394     }
37395 
operator VkDrawIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndirectCommand37396     operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
37397     {
37398       return *reinterpret_cast<VkDrawIndirectCommand*>( this );
37399     }
37400 
37401 
37402 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37403     auto operator<=>( DrawIndirectCommand const& ) const = default;
37404 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndirectCommand37405     bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
37406     {
37407       return ( vertexCount == rhs.vertexCount )
37408           && ( instanceCount == rhs.instanceCount )
37409           && ( firstVertex == rhs.firstVertex )
37410           && ( firstInstance == rhs.firstInstance );
37411     }
37412 
operator !=VULKAN_HPP_NAMESPACE::DrawIndirectCommand37413     bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
37414     {
37415       return !operator==( rhs );
37416     }
37417 #endif
37418 
37419 
37420 
37421   public:
37422     uint32_t vertexCount = {};
37423     uint32_t instanceCount = {};
37424     uint32_t firstVertex = {};
37425     uint32_t firstInstance = {};
37426 
37427   };
37428   static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" );
37429   static_assert( std::is_standard_layout<DrawIndirectCommand>::value, "struct wrapper is not a standard layout!" );
37430 
37431   struct DrawMeshTasksIndirectCommandNV
37432   {
37433 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37434     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = {},
37435                                                          uint32_t firstTask_ = {} ) VULKAN_HPP_NOEXCEPT
37436       : taskCount( taskCount_ )
37437       , firstTask( firstTask_ )
37438     {}
37439 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37440     DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
37441     {
37442       *this = rhs;
37443     }
37444 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37445     DrawMeshTasksIndirectCommandNV& operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
37446     {
37447       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>(&rhs);
37448       return *this;
37449     }
37450 
setTaskCountVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37451     DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
37452     {
37453       taskCount = taskCount_;
37454       return *this;
37455     }
37456 
setFirstTaskVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37457     DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
37458     {
37459       firstTask = firstTask_;
37460       return *this;
37461     }
37462 
37463 
operator VkDrawMeshTasksIndirectCommandNV const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37464     operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
37465     {
37466       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
37467     }
37468 
operator VkDrawMeshTasksIndirectCommandNV&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37469     operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
37470     {
37471       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
37472     }
37473 
37474 
37475 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37476     auto operator<=>( DrawMeshTasksIndirectCommandNV const& ) const = default;
37477 #else
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37478     bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
37479     {
37480       return ( taskCount == rhs.taskCount )
37481           && ( firstTask == rhs.firstTask );
37482     }
37483 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV37484     bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
37485     {
37486       return !operator==( rhs );
37487     }
37488 #endif
37489 
37490 
37491 
37492   public:
37493     uint32_t taskCount = {};
37494     uint32_t firstTask = {};
37495 
37496   };
37497   static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" );
37498   static_assert( std::is_standard_layout<DrawMeshTasksIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
37499 
37500   struct DrmFormatModifierPropertiesEXT
37501   {
37502 
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT37503     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {},
37504                                                          uint32_t drmFormatModifierPlaneCount_ = {},
37505                                                          VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
37506       : drmFormatModifier( drmFormatModifier_ )
37507       , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
37508       , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
37509     {}
37510 
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT37511     DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
37512     {
37513       *this = rhs;
37514     }
37515 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT37516     DrmFormatModifierPropertiesEXT& operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
37517     {
37518       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>(&rhs);
37519       return *this;
37520     }
37521 
37522 
operator VkDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT37523     operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
37524     {
37525       return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
37526     }
37527 
operator VkDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT37528     operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
37529     {
37530       return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
37531     }
37532 
37533 
37534 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37535     auto operator<=>( DrmFormatModifierPropertiesEXT const& ) const = default;
37536 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT37537     bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
37538     {
37539       return ( drmFormatModifier == rhs.drmFormatModifier )
37540           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
37541           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
37542     }
37543 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT37544     bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
37545     {
37546       return !operator==( rhs );
37547     }
37548 #endif
37549 
37550 
37551 
37552   public:
37553     uint64_t drmFormatModifier = {};
37554     uint32_t drmFormatModifierPlaneCount = {};
37555     VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
37556 
37557   };
37558   static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
37559   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
37560 
37561   struct DrmFormatModifierPropertiesListEXT
37562   {
37563     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
37564 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37565     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( uint32_t drmFormatModifierCount_ = {},
37566                                                              VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {} ) VULKAN_HPP_NOEXCEPT
37567       : drmFormatModifierCount( drmFormatModifierCount_ )
37568       , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
37569     {}
37570 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37571     DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
37572     {
37573       memcpy( &pNext, &rhs.pNext, sizeof( DrmFormatModifierPropertiesListEXT ) - offsetof( DrmFormatModifierPropertiesListEXT, pNext ) );
37574       return *this;
37575     }
37576 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37577     DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
37578     {
37579       *this = rhs;
37580     }
37581 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37582     DrmFormatModifierPropertiesListEXT& operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
37583     {
37584       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>(&rhs);
37585       return *this;
37586     }
37587 
37588 
operator VkDrmFormatModifierPropertiesListEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37589     operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT
37590     {
37591       return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
37592     }
37593 
operator VkDrmFormatModifierPropertiesListEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37594     operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
37595     {
37596       return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
37597     }
37598 
37599 
37600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37601     auto operator<=>( DrmFormatModifierPropertiesListEXT const& ) const = default;
37602 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37603     bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
37604     {
37605       return ( sType == rhs.sType )
37606           && ( pNext == rhs.pNext )
37607           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
37608           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
37609     }
37610 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT37611     bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
37612     {
37613       return !operator==( rhs );
37614     }
37615 #endif
37616 
37617 
37618 
37619   public:
37620     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
37621     void* pNext = {};
37622     uint32_t drmFormatModifierCount = {};
37623     VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {};
37624 
37625   };
37626   static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" );
37627   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesListEXT>::value, "struct wrapper is not a standard layout!" );
37628 
37629   template <>
37630   struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
37631   {
37632     using Type = DrmFormatModifierPropertiesListEXT;
37633   };
37634 
37635   struct EventCreateInfo
37636   {
37637     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
37638 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo37639     VULKAN_HPP_CONSTEXPR EventCreateInfo( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
37640       : flags( flags_ )
37641     {}
37642 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo37643     EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37644     {
37645       memcpy( &pNext, &rhs.pNext, sizeof( EventCreateInfo ) - offsetof( EventCreateInfo, pNext ) );
37646       return *this;
37647     }
37648 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo37649     EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37650     {
37651       *this = rhs;
37652     }
37653 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo37654     EventCreateInfo& operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37655     {
37656       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>(&rhs);
37657       return *this;
37658     }
37659 
setPNextVULKAN_HPP_NAMESPACE::EventCreateInfo37660     EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37661     {
37662       pNext = pNext_;
37663       return *this;
37664     }
37665 
setFlagsVULKAN_HPP_NAMESPACE::EventCreateInfo37666     EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37667     {
37668       flags = flags_;
37669       return *this;
37670     }
37671 
37672 
operator VkEventCreateInfo const&VULKAN_HPP_NAMESPACE::EventCreateInfo37673     operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37674     {
37675       return *reinterpret_cast<const VkEventCreateInfo*>( this );
37676     }
37677 
operator VkEventCreateInfo&VULKAN_HPP_NAMESPACE::EventCreateInfo37678     operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
37679     {
37680       return *reinterpret_cast<VkEventCreateInfo*>( this );
37681     }
37682 
37683 
37684 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37685     auto operator<=>( EventCreateInfo const& ) const = default;
37686 #else
operator ==VULKAN_HPP_NAMESPACE::EventCreateInfo37687     bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37688     {
37689       return ( sType == rhs.sType )
37690           && ( pNext == rhs.pNext )
37691           && ( flags == rhs.flags );
37692     }
37693 
operator !=VULKAN_HPP_NAMESPACE::EventCreateInfo37694     bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37695     {
37696       return !operator==( rhs );
37697     }
37698 #endif
37699 
37700 
37701 
37702   public:
37703     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
37704     const void* pNext = {};
37705     VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
37706 
37707   };
37708   static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
37709   static_assert( std::is_standard_layout<EventCreateInfo>::value, "struct wrapper is not a standard layout!" );
37710 
37711   template <>
37712   struct CppType<StructureType, StructureType::eEventCreateInfo>
37713   {
37714     using Type = EventCreateInfo;
37715   };
37716 
37717   struct ExportFenceCreateInfo
37718   {
37719     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
37720 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37721     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
37722       : handleTypes( handleTypes_ )
37723     {}
37724 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37725     ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37726     {
37727       memcpy( &pNext, &rhs.pNext, sizeof( ExportFenceCreateInfo ) - offsetof( ExportFenceCreateInfo, pNext ) );
37728       return *this;
37729     }
37730 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37731     ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37732     {
37733       *this = rhs;
37734     }
37735 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37736     ExportFenceCreateInfo& operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37737     {
37738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>(&rhs);
37739       return *this;
37740     }
37741 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37742     ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37743     {
37744       pNext = pNext_;
37745       return *this;
37746     }
37747 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37748     ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
37749     {
37750       handleTypes = handleTypes_;
37751       return *this;
37752     }
37753 
37754 
operator VkExportFenceCreateInfo const&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37755     operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37756     {
37757       return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
37758     }
37759 
operator VkExportFenceCreateInfo&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37760     operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
37761     {
37762       return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
37763     }
37764 
37765 
37766 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37767     auto operator<=>( ExportFenceCreateInfo const& ) const = default;
37768 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37769     bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37770     {
37771       return ( sType == rhs.sType )
37772           && ( pNext == rhs.pNext )
37773           && ( handleTypes == rhs.handleTypes );
37774     }
37775 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo37776     bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37777     {
37778       return !operator==( rhs );
37779     }
37780 #endif
37781 
37782 
37783 
37784   public:
37785     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
37786     const void* pNext = {};
37787     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
37788 
37789   };
37790   static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" );
37791   static_assert( std::is_standard_layout<ExportFenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
37792 
37793   template <>
37794   struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
37795   {
37796     using Type = ExportFenceCreateInfo;
37797   };
37798 
37799 #ifdef VK_USE_PLATFORM_WIN32_KHR
37800   struct ExportFenceWin32HandleInfoKHR
37801   {
37802     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
37803 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37804     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = {},
37805                                                         DWORD dwAccess_ = {},
37806                                                         LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT
37807       : pAttributes( pAttributes_ )
37808       , dwAccess( dwAccess_ )
37809       , name( name_ )
37810     {}
37811 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37812     ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
37813     {
37814       memcpy( &pNext, &rhs.pNext, sizeof( ExportFenceWin32HandleInfoKHR ) - offsetof( ExportFenceWin32HandleInfoKHR, pNext ) );
37815       return *this;
37816     }
37817 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37818     ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
37819     {
37820       *this = rhs;
37821     }
37822 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37823     ExportFenceWin32HandleInfoKHR& operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
37824     {
37825       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>(&rhs);
37826       return *this;
37827     }
37828 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37829     ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37830     {
37831       pNext = pNext_;
37832       return *this;
37833     }
37834 
setPAttributesVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37835     ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
37836     {
37837       pAttributes = pAttributes_;
37838       return *this;
37839     }
37840 
setDwAccessVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37841     ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
37842     {
37843       dwAccess = dwAccess_;
37844       return *this;
37845     }
37846 
setNameVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37847     ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
37848     {
37849       name = name_;
37850       return *this;
37851     }
37852 
37853 
operator VkExportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37854     operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
37855     {
37856       return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
37857     }
37858 
operator VkExportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37859     operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
37860     {
37861       return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
37862     }
37863 
37864 
37865 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37866     auto operator<=>( ExportFenceWin32HandleInfoKHR const& ) const = default;
37867 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37868     bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
37869     {
37870       return ( sType == rhs.sType )
37871           && ( pNext == rhs.pNext )
37872           && ( pAttributes == rhs.pAttributes )
37873           && ( dwAccess == rhs.dwAccess )
37874           && ( name == rhs.name );
37875     }
37876 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR37877     bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
37878     {
37879       return !operator==( rhs );
37880     }
37881 #endif
37882 
37883 
37884 
37885   public:
37886     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
37887     const void* pNext = {};
37888     const SECURITY_ATTRIBUTES* pAttributes = {};
37889     DWORD dwAccess = {};
37890     LPCWSTR name = {};
37891 
37892   };
37893   static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
37894   static_assert( std::is_standard_layout<ExportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
37895 
37896   template <>
37897   struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
37898   {
37899     using Type = ExportFenceWin32HandleInfoKHR;
37900   };
37901 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
37902 
37903   struct ExportMemoryAllocateInfo
37904   {
37905     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
37906 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37907     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
37908       : handleTypes( handleTypes_ )
37909     {}
37910 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37911     ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37912     {
37913       memcpy( &pNext, &rhs.pNext, sizeof( ExportMemoryAllocateInfo ) - offsetof( ExportMemoryAllocateInfo, pNext ) );
37914       return *this;
37915     }
37916 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37917     ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37918     {
37919       *this = rhs;
37920     }
37921 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37922     ExportMemoryAllocateInfo& operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37923     {
37924       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>(&rhs);
37925       return *this;
37926     }
37927 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37928     ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37929     {
37930       pNext = pNext_;
37931       return *this;
37932     }
37933 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37934     ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
37935     {
37936       handleTypes = handleTypes_;
37937       return *this;
37938     }
37939 
37940 
operator VkExportMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37941     operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
37942     {
37943       return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
37944     }
37945 
operator VkExportMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37946     operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
37947     {
37948       return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
37949     }
37950 
37951 
37952 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37953     auto operator<=>( ExportMemoryAllocateInfo const& ) const = default;
37954 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37955     bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37956     {
37957       return ( sType == rhs.sType )
37958           && ( pNext == rhs.pNext )
37959           && ( handleTypes == rhs.handleTypes );
37960     }
37961 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo37962     bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37963     {
37964       return !operator==( rhs );
37965     }
37966 #endif
37967 
37968 
37969 
37970   public:
37971     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
37972     const void* pNext = {};
37973     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
37974 
37975   };
37976   static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" );
37977   static_assert( std::is_standard_layout<ExportMemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
37978 
37979   template <>
37980   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
37981   {
37982     using Type = ExportMemoryAllocateInfo;
37983   };
37984 
37985   struct ExportMemoryAllocateInfoNV
37986   {
37987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
37988 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV37989     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
37990       : handleTypes( handleTypes_ )
37991     {}
37992 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV37993     ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
37994     {
37995       memcpy( &pNext, &rhs.pNext, sizeof( ExportMemoryAllocateInfoNV ) - offsetof( ExportMemoryAllocateInfoNV, pNext ) );
37996       return *this;
37997     }
37998 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV37999     ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38000     {
38001       *this = rhs;
38002     }
38003 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV38004     ExportMemoryAllocateInfoNV& operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38005     {
38006       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>(&rhs);
38007       return *this;
38008     }
38009 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV38010     ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38011     {
38012       pNext = pNext_;
38013       return *this;
38014     }
38015 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV38016     ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
38017     {
38018       handleTypes = handleTypes_;
38019       return *this;
38020     }
38021 
38022 
operator VkExportMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV38023     operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
38024     {
38025       return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
38026     }
38027 
operator VkExportMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV38028     operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
38029     {
38030       return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
38031     }
38032 
38033 
38034 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38035     auto operator<=>( ExportMemoryAllocateInfoNV const& ) const = default;
38036 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV38037     bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38038     {
38039       return ( sType == rhs.sType )
38040           && ( pNext == rhs.pNext )
38041           && ( handleTypes == rhs.handleTypes );
38042     }
38043 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV38044     bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38045     {
38046       return !operator==( rhs );
38047     }
38048 #endif
38049 
38050 
38051 
38052   public:
38053     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
38054     const void* pNext = {};
38055     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
38056 
38057   };
38058   static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
38059   static_assert( std::is_standard_layout<ExportMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
38060 
38061   template <>
38062   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
38063   {
38064     using Type = ExportMemoryAllocateInfoNV;
38065   };
38066 
38067 #ifdef VK_USE_PLATFORM_WIN32_KHR
38068   struct ExportMemoryWin32HandleInfoKHR
38069   {
38070     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
38071 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38072     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = {},
38073                                                          DWORD dwAccess_ = {},
38074                                                          LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT
38075       : pAttributes( pAttributes_ )
38076       , dwAccess( dwAccess_ )
38077       , name( name_ )
38078     {}
38079 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38080     ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
38081     {
38082       memcpy( &pNext, &rhs.pNext, sizeof( ExportMemoryWin32HandleInfoKHR ) - offsetof( ExportMemoryWin32HandleInfoKHR, pNext ) );
38083       return *this;
38084     }
38085 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38086     ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
38087     {
38088       *this = rhs;
38089     }
38090 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38091     ExportMemoryWin32HandleInfoKHR& operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
38092     {
38093       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>(&rhs);
38094       return *this;
38095     }
38096 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38097     ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38098     {
38099       pNext = pNext_;
38100       return *this;
38101     }
38102 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38103     ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
38104     {
38105       pAttributes = pAttributes_;
38106       return *this;
38107     }
38108 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38109     ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
38110     {
38111       dwAccess = dwAccess_;
38112       return *this;
38113     }
38114 
setNameVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38115     ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
38116     {
38117       name = name_;
38118       return *this;
38119     }
38120 
38121 
operator VkExportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38122     operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
38123     {
38124       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
38125     }
38126 
operator VkExportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38127     operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
38128     {
38129       return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
38130     }
38131 
38132 
38133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38134     auto operator<=>( ExportMemoryWin32HandleInfoKHR const& ) const = default;
38135 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38136     bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
38137     {
38138       return ( sType == rhs.sType )
38139           && ( pNext == rhs.pNext )
38140           && ( pAttributes == rhs.pAttributes )
38141           && ( dwAccess == rhs.dwAccess )
38142           && ( name == rhs.name );
38143     }
38144 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR38145     bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
38146     {
38147       return !operator==( rhs );
38148     }
38149 #endif
38150 
38151 
38152 
38153   public:
38154     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
38155     const void* pNext = {};
38156     const SECURITY_ATTRIBUTES* pAttributes = {};
38157     DWORD dwAccess = {};
38158     LPCWSTR name = {};
38159 
38160   };
38161   static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
38162   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
38163 
38164   template <>
38165   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
38166   {
38167     using Type = ExportMemoryWin32HandleInfoKHR;
38168   };
38169 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
38170 
38171 #ifdef VK_USE_PLATFORM_WIN32_KHR
38172   struct ExportMemoryWin32HandleInfoNV
38173   {
38174     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
38175 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38176     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES* pAttributes_ = {},
38177                                                         DWORD dwAccess_ = {} ) VULKAN_HPP_NOEXCEPT
38178       : pAttributes( pAttributes_ )
38179       , dwAccess( dwAccess_ )
38180     {}
38181 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38182     ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38183     {
38184       memcpy( &pNext, &rhs.pNext, sizeof( ExportMemoryWin32HandleInfoNV ) - offsetof( ExportMemoryWin32HandleInfoNV, pNext ) );
38185       return *this;
38186     }
38187 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38188     ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38189     {
38190       *this = rhs;
38191     }
38192 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38193     ExportMemoryWin32HandleInfoNV& operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38194     {
38195       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>(&rhs);
38196       return *this;
38197     }
38198 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38199     ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38200     {
38201       pNext = pNext_;
38202       return *this;
38203     }
38204 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38205     ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
38206     {
38207       pAttributes = pAttributes_;
38208       return *this;
38209     }
38210 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38211     ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
38212     {
38213       dwAccess = dwAccess_;
38214       return *this;
38215     }
38216 
38217 
operator VkExportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38218     operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
38219     {
38220       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
38221     }
38222 
operator VkExportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38223     operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
38224     {
38225       return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
38226     }
38227 
38228 
38229 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38230     auto operator<=>( ExportMemoryWin32HandleInfoNV const& ) const = default;
38231 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38232     bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38233     {
38234       return ( sType == rhs.sType )
38235           && ( pNext == rhs.pNext )
38236           && ( pAttributes == rhs.pAttributes )
38237           && ( dwAccess == rhs.dwAccess );
38238     }
38239 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV38240     bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38241     {
38242       return !operator==( rhs );
38243     }
38244 #endif
38245 
38246 
38247 
38248   public:
38249     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
38250     const void* pNext = {};
38251     const SECURITY_ATTRIBUTES* pAttributes = {};
38252     DWORD dwAccess = {};
38253 
38254   };
38255   static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
38256   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
38257 
38258   template <>
38259   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
38260   {
38261     using Type = ExportMemoryWin32HandleInfoNV;
38262   };
38263 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
38264 
38265   struct ExportSemaphoreCreateInfo
38266   {
38267     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
38268 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38269     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
38270       : handleTypes( handleTypes_ )
38271     {}
38272 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38273     ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38274     {
38275       memcpy( &pNext, &rhs.pNext, sizeof( ExportSemaphoreCreateInfo ) - offsetof( ExportSemaphoreCreateInfo, pNext ) );
38276       return *this;
38277     }
38278 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38279     ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38280     {
38281       *this = rhs;
38282     }
38283 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38284     ExportSemaphoreCreateInfo& operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38285     {
38286       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>(&rhs);
38287       return *this;
38288     }
38289 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38290     ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38291     {
38292       pNext = pNext_;
38293       return *this;
38294     }
38295 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38296     ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
38297     {
38298       handleTypes = handleTypes_;
38299       return *this;
38300     }
38301 
38302 
operator VkExportSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38303     operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38304     {
38305       return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
38306     }
38307 
operator VkExportSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38308     operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
38309     {
38310       return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
38311     }
38312 
38313 
38314 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38315     auto operator<=>( ExportSemaphoreCreateInfo const& ) const = default;
38316 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38317     bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38318     {
38319       return ( sType == rhs.sType )
38320           && ( pNext == rhs.pNext )
38321           && ( handleTypes == rhs.handleTypes );
38322     }
38323 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo38324     bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38325     {
38326       return !operator==( rhs );
38327     }
38328 #endif
38329 
38330 
38331 
38332   public:
38333     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
38334     const void* pNext = {};
38335     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
38336 
38337   };
38338   static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" );
38339   static_assert( std::is_standard_layout<ExportSemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
38340 
38341   template <>
38342   struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
38343   {
38344     using Type = ExportSemaphoreCreateInfo;
38345   };
38346 
38347 #ifdef VK_USE_PLATFORM_WIN32_KHR
38348   struct ExportSemaphoreWin32HandleInfoKHR
38349   {
38350     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
38351 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38352     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = {},
38353                                                             DWORD dwAccess_ = {},
38354                                                             LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT
38355       : pAttributes( pAttributes_ )
38356       , dwAccess( dwAccess_ )
38357       , name( name_ )
38358     {}
38359 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38360     ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
38361     {
38362       memcpy( &pNext, &rhs.pNext, sizeof( ExportSemaphoreWin32HandleInfoKHR ) - offsetof( ExportSemaphoreWin32HandleInfoKHR, pNext ) );
38363       return *this;
38364     }
38365 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38366     ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
38367     {
38368       *this = rhs;
38369     }
38370 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38371     ExportSemaphoreWin32HandleInfoKHR& operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
38372     {
38373       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>(&rhs);
38374       return *this;
38375     }
38376 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38377     ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38378     {
38379       pNext = pNext_;
38380       return *this;
38381     }
38382 
setPAttributesVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38383     ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
38384     {
38385       pAttributes = pAttributes_;
38386       return *this;
38387     }
38388 
setDwAccessVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38389     ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
38390     {
38391       dwAccess = dwAccess_;
38392       return *this;
38393     }
38394 
setNameVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38395     ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
38396     {
38397       name = name_;
38398       return *this;
38399     }
38400 
38401 
operator VkExportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38402     operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
38403     {
38404       return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
38405     }
38406 
operator VkExportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38407     operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
38408     {
38409       return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
38410     }
38411 
38412 
38413 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38414     auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const& ) const = default;
38415 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38416     bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
38417     {
38418       return ( sType == rhs.sType )
38419           && ( pNext == rhs.pNext )
38420           && ( pAttributes == rhs.pAttributes )
38421           && ( dwAccess == rhs.dwAccess )
38422           && ( name == rhs.name );
38423     }
38424 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR38425     bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
38426     {
38427       return !operator==( rhs );
38428     }
38429 #endif
38430 
38431 
38432 
38433   public:
38434     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
38435     const void* pNext = {};
38436     const SECURITY_ATTRIBUTES* pAttributes = {};
38437     DWORD dwAccess = {};
38438     LPCWSTR name = {};
38439 
38440   };
38441   static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
38442   static_assert( std::is_standard_layout<ExportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
38443 
38444   template <>
38445   struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
38446   {
38447     using Type = ExportSemaphoreWin32HandleInfoKHR;
38448   };
38449 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
38450 
38451   struct ExtensionProperties
38452   {
38453 
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties38454     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& extensionName_ = {},
38455                                                  uint32_t specVersion_ = {} ) VULKAN_HPP_NOEXCEPT
38456       : extensionName( extensionName_ )
38457       , specVersion( specVersion_ )
38458     {}
38459 
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties38460     ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38461     {
38462       *this = rhs;
38463     }
38464 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties38465     ExtensionProperties& operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38466     {
38467       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>(&rhs);
38468       return *this;
38469     }
38470 
38471 
operator VkExtensionProperties const&VULKAN_HPP_NAMESPACE::ExtensionProperties38472     operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT
38473     {
38474       return *reinterpret_cast<const VkExtensionProperties*>( this );
38475     }
38476 
operator VkExtensionProperties&VULKAN_HPP_NAMESPACE::ExtensionProperties38477     operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
38478     {
38479       return *reinterpret_cast<VkExtensionProperties*>( this );
38480     }
38481 
38482 
38483 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38484     auto operator<=>( ExtensionProperties const& ) const = default;
38485 #else
operator ==VULKAN_HPP_NAMESPACE::ExtensionProperties38486     bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38487     {
38488       return ( extensionName == rhs.extensionName )
38489           && ( specVersion == rhs.specVersion );
38490     }
38491 
operator !=VULKAN_HPP_NAMESPACE::ExtensionProperties38492     bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38493     {
38494       return !operator==( rhs );
38495     }
38496 #endif
38497 
38498 
38499 
38500   public:
38501     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
38502     uint32_t specVersion = {};
38503 
38504   };
38505   static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" );
38506   static_assert( std::is_standard_layout<ExtensionProperties>::value, "struct wrapper is not a standard layout!" );
38507 
38508   struct ExternalMemoryProperties
38509   {
38510 
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties38511     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {},
38512                                                    VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {},
38513                                                    VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
38514       : externalMemoryFeatures( externalMemoryFeatures_ )
38515       , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
38516       , compatibleHandleTypes( compatibleHandleTypes_ )
38517     {}
38518 
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties38519     ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38520     {
38521       *this = rhs;
38522     }
38523 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties38524     ExternalMemoryProperties& operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38525     {
38526       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>(&rhs);
38527       return *this;
38528     }
38529 
38530 
operator VkExternalMemoryProperties const&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties38531     operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
38532     {
38533       return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
38534     }
38535 
operator VkExternalMemoryProperties&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties38536     operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
38537     {
38538       return *reinterpret_cast<VkExternalMemoryProperties*>( this );
38539     }
38540 
38541 
38542 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38543     auto operator<=>( ExternalMemoryProperties const& ) const = default;
38544 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryProperties38545     bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38546     {
38547       return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
38548           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
38549           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
38550     }
38551 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryProperties38552     bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38553     {
38554       return !operator==( rhs );
38555     }
38556 #endif
38557 
38558 
38559 
38560   public:
38561     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
38562     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
38563     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
38564 
38565   };
38566   static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" );
38567   static_assert( std::is_standard_layout<ExternalMemoryProperties>::value, "struct wrapper is not a standard layout!" );
38568 
38569   struct ExternalBufferProperties
38570   {
38571     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
38572 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties38573     VULKAN_HPP_CONSTEXPR ExternalBufferProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT
38574       : externalMemoryProperties( externalMemoryProperties_ )
38575     {}
38576 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties38577     ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38578     {
38579       memcpy( &pNext, &rhs.pNext, sizeof( ExternalBufferProperties ) - offsetof( ExternalBufferProperties, pNext ) );
38580       return *this;
38581     }
38582 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties38583     ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38584     {
38585       *this = rhs;
38586     }
38587 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties38588     ExternalBufferProperties& operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38589     {
38590       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>(&rhs);
38591       return *this;
38592     }
38593 
38594 
operator VkExternalBufferProperties const&VULKAN_HPP_NAMESPACE::ExternalBufferProperties38595     operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT
38596     {
38597       return *reinterpret_cast<const VkExternalBufferProperties*>( this );
38598     }
38599 
operator VkExternalBufferProperties&VULKAN_HPP_NAMESPACE::ExternalBufferProperties38600     operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
38601     {
38602       return *reinterpret_cast<VkExternalBufferProperties*>( this );
38603     }
38604 
38605 
38606 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38607     auto operator<=>( ExternalBufferProperties const& ) const = default;
38608 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalBufferProperties38609     bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38610     {
38611       return ( sType == rhs.sType )
38612           && ( pNext == rhs.pNext )
38613           && ( externalMemoryProperties == rhs.externalMemoryProperties );
38614     }
38615 
operator !=VULKAN_HPP_NAMESPACE::ExternalBufferProperties38616     bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38617     {
38618       return !operator==( rhs );
38619     }
38620 #endif
38621 
38622 
38623 
38624   public:
38625     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
38626     void* pNext = {};
38627     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
38628 
38629   };
38630   static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" );
38631   static_assert( std::is_standard_layout<ExternalBufferProperties>::value, "struct wrapper is not a standard layout!" );
38632 
38633   template <>
38634   struct CppType<StructureType, StructureType::eExternalBufferProperties>
38635   {
38636     using Type = ExternalBufferProperties;
38637   };
38638 
38639   struct ExternalFenceProperties
38640   {
38641     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
38642 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties38643     VULKAN_HPP_CONSTEXPR ExternalFenceProperties( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {},
38644                                                   VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {},
38645                                                   VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
38646       : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
38647       , compatibleHandleTypes( compatibleHandleTypes_ )
38648       , externalFenceFeatures( externalFenceFeatures_ )
38649     {}
38650 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties38651     ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38652     {
38653       memcpy( &pNext, &rhs.pNext, sizeof( ExternalFenceProperties ) - offsetof( ExternalFenceProperties, pNext ) );
38654       return *this;
38655     }
38656 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties38657     ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38658     {
38659       *this = rhs;
38660     }
38661 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties38662     ExternalFenceProperties& operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38663     {
38664       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>(&rhs);
38665       return *this;
38666     }
38667 
38668 
operator VkExternalFenceProperties const&VULKAN_HPP_NAMESPACE::ExternalFenceProperties38669     operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT
38670     {
38671       return *reinterpret_cast<const VkExternalFenceProperties*>( this );
38672     }
38673 
operator VkExternalFenceProperties&VULKAN_HPP_NAMESPACE::ExternalFenceProperties38674     operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
38675     {
38676       return *reinterpret_cast<VkExternalFenceProperties*>( this );
38677     }
38678 
38679 
38680 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38681     auto operator<=>( ExternalFenceProperties const& ) const = default;
38682 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFenceProperties38683     bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38684     {
38685       return ( sType == rhs.sType )
38686           && ( pNext == rhs.pNext )
38687           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
38688           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
38689           && ( externalFenceFeatures == rhs.externalFenceFeatures );
38690     }
38691 
operator !=VULKAN_HPP_NAMESPACE::ExternalFenceProperties38692     bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38693     {
38694       return !operator==( rhs );
38695     }
38696 #endif
38697 
38698 
38699 
38700   public:
38701     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
38702     void* pNext = {};
38703     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
38704     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
38705     VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
38706 
38707   };
38708   static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" );
38709   static_assert( std::is_standard_layout<ExternalFenceProperties>::value, "struct wrapper is not a standard layout!" );
38710 
38711   template <>
38712   struct CppType<StructureType, StructureType::eExternalFenceProperties>
38713   {
38714     using Type = ExternalFenceProperties;
38715   };
38716 
38717 #ifdef VK_USE_PLATFORM_ANDROID_KHR
38718   struct ExternalFormatANDROID
38719   {
38720     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
38721 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID38722     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( uint64_t externalFormat_ = {} ) VULKAN_HPP_NOEXCEPT
38723       : externalFormat( externalFormat_ )
38724     {}
38725 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID38726     ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
38727     {
38728       memcpy( &pNext, &rhs.pNext, sizeof( ExternalFormatANDROID ) - offsetof( ExternalFormatANDROID, pNext ) );
38729       return *this;
38730     }
38731 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID38732     ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
38733     {
38734       *this = rhs;
38735     }
38736 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID38737     ExternalFormatANDROID& operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
38738     {
38739       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>(&rhs);
38740       return *this;
38741     }
38742 
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatANDROID38743     ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
38744     {
38745       pNext = pNext_;
38746       return *this;
38747     }
38748 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatANDROID38749     ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
38750     {
38751       externalFormat = externalFormat_;
38752       return *this;
38753     }
38754 
38755 
operator VkExternalFormatANDROID const&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID38756     operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT
38757     {
38758       return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
38759     }
38760 
operator VkExternalFormatANDROID&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID38761     operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
38762     {
38763       return *reinterpret_cast<VkExternalFormatANDROID*>( this );
38764     }
38765 
38766 
38767 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38768     auto operator<=>( ExternalFormatANDROID const& ) const = default;
38769 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatANDROID38770     bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
38771     {
38772       return ( sType == rhs.sType )
38773           && ( pNext == rhs.pNext )
38774           && ( externalFormat == rhs.externalFormat );
38775     }
38776 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatANDROID38777     bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
38778     {
38779       return !operator==( rhs );
38780     }
38781 #endif
38782 
38783 
38784 
38785   public:
38786     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
38787     void* pNext = {};
38788     uint64_t externalFormat = {};
38789 
38790   };
38791   static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
38792   static_assert( std::is_standard_layout<ExternalFormatANDROID>::value, "struct wrapper is not a standard layout!" );
38793 
38794   template <>
38795   struct CppType<StructureType, StructureType::eExternalFormatANDROID>
38796   {
38797     using Type = ExternalFormatANDROID;
38798   };
38799 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
38800 
38801   struct ExternalImageFormatProperties
38802   {
38803     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
38804 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38805     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT
38806       : externalMemoryProperties( externalMemoryProperties_ )
38807     {}
38808 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38809     ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38810     {
38811       memcpy( &pNext, &rhs.pNext, sizeof( ExternalImageFormatProperties ) - offsetof( ExternalImageFormatProperties, pNext ) );
38812       return *this;
38813     }
38814 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38815     ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38816     {
38817       *this = rhs;
38818     }
38819 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38820     ExternalImageFormatProperties& operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38821     {
38822       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>(&rhs);
38823       return *this;
38824     }
38825 
38826 
operator VkExternalImageFormatProperties const&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38827     operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
38828     {
38829       return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
38830     }
38831 
operator VkExternalImageFormatProperties&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38832     operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
38833     {
38834       return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
38835     }
38836 
38837 
38838 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38839     auto operator<=>( ExternalImageFormatProperties const& ) const = default;
38840 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38841     bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38842     {
38843       return ( sType == rhs.sType )
38844           && ( pNext == rhs.pNext )
38845           && ( externalMemoryProperties == rhs.externalMemoryProperties );
38846     }
38847 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties38848     bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38849     {
38850       return !operator==( rhs );
38851     }
38852 #endif
38853 
38854 
38855 
38856   public:
38857     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
38858     void* pNext = {};
38859     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
38860 
38861   };
38862   static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" );
38863   static_assert( std::is_standard_layout<ExternalImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
38864 
38865   template <>
38866   struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
38867   {
38868     using Type = ExternalImageFormatProperties;
38869   };
38870 
38871   struct ImageFormatProperties
38872   {
38873 
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties38874     VULKAN_HPP_CONSTEXPR ImageFormatProperties( VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {},
38875                                                 uint32_t maxMipLevels_ = {},
38876                                                 uint32_t maxArrayLayers_ = {},
38877                                                 VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {},
38878                                                 VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {} ) VULKAN_HPP_NOEXCEPT
38879       : maxExtent( maxExtent_ )
38880       , maxMipLevels( maxMipLevels_ )
38881       , maxArrayLayers( maxArrayLayers_ )
38882       , sampleCounts( sampleCounts_ )
38883       , maxResourceSize( maxResourceSize_ )
38884     {}
38885 
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties38886     ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38887     {
38888       *this = rhs;
38889     }
38890 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties38891     ImageFormatProperties& operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
38892     {
38893       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>(&rhs);
38894       return *this;
38895     }
38896 
38897 
operator VkImageFormatProperties const&VULKAN_HPP_NAMESPACE::ImageFormatProperties38898     operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
38899     {
38900       return *reinterpret_cast<const VkImageFormatProperties*>( this );
38901     }
38902 
operator VkImageFormatProperties&VULKAN_HPP_NAMESPACE::ImageFormatProperties38903     operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
38904     {
38905       return *reinterpret_cast<VkImageFormatProperties*>( this );
38906     }
38907 
38908 
38909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38910     auto operator<=>( ImageFormatProperties const& ) const = default;
38911 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties38912     bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38913     {
38914       return ( maxExtent == rhs.maxExtent )
38915           && ( maxMipLevels == rhs.maxMipLevels )
38916           && ( maxArrayLayers == rhs.maxArrayLayers )
38917           && ( sampleCounts == rhs.sampleCounts )
38918           && ( maxResourceSize == rhs.maxResourceSize );
38919     }
38920 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties38921     bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
38922     {
38923       return !operator==( rhs );
38924     }
38925 #endif
38926 
38927 
38928 
38929   public:
38930     VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
38931     uint32_t maxMipLevels = {};
38932     uint32_t maxArrayLayers = {};
38933     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
38934     VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
38935 
38936   };
38937   static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" );
38938   static_assert( std::is_standard_layout<ImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
38939 
38940   struct ExternalImageFormatPropertiesNV
38941   {
38942 
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV38943     VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {},
38944                                                           VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {},
38945                                                           VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {},
38946                                                           VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
38947       : imageFormatProperties( imageFormatProperties_ )
38948       , externalMemoryFeatures( externalMemoryFeatures_ )
38949       , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
38950       , compatibleHandleTypes( compatibleHandleTypes_ )
38951     {}
38952 
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV38953     ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
38954     {
38955       *this = rhs;
38956     }
38957 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV38958     ExternalImageFormatPropertiesNV& operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
38959     {
38960       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>(&rhs);
38961       return *this;
38962     }
38963 
38964 
operator VkExternalImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV38965     operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
38966     {
38967       return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
38968     }
38969 
operator VkExternalImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV38970     operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
38971     {
38972       return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
38973     }
38974 
38975 
38976 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38977     auto operator<=>( ExternalImageFormatPropertiesNV const& ) const = default;
38978 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV38979     bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38980     {
38981       return ( imageFormatProperties == rhs.imageFormatProperties )
38982           && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
38983           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
38984           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
38985     }
38986 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV38987     bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38988     {
38989       return !operator==( rhs );
38990     }
38991 #endif
38992 
38993 
38994 
38995   public:
38996     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
38997     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
38998     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
38999     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
39000 
39001   };
39002   static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" );
39003   static_assert( std::is_standard_layout<ExternalImageFormatPropertiesNV>::value, "struct wrapper is not a standard layout!" );
39004 
39005   struct ExternalMemoryBufferCreateInfo
39006   {
39007     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
39008 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39009     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
39010       : handleTypes( handleTypes_ )
39011     {}
39012 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39013     ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39014     {
39015       memcpy( &pNext, &rhs.pNext, sizeof( ExternalMemoryBufferCreateInfo ) - offsetof( ExternalMemoryBufferCreateInfo, pNext ) );
39016       return *this;
39017     }
39018 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39019     ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39020     {
39021       *this = rhs;
39022     }
39023 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39024     ExternalMemoryBufferCreateInfo& operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39025     {
39026       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>(&rhs);
39027       return *this;
39028     }
39029 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39030     ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39031     {
39032       pNext = pNext_;
39033       return *this;
39034     }
39035 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39036     ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
39037     {
39038       handleTypes = handleTypes_;
39039       return *this;
39040     }
39041 
39042 
operator VkExternalMemoryBufferCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39043     operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39044     {
39045       return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
39046     }
39047 
operator VkExternalMemoryBufferCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39048     operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
39049     {
39050       return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
39051     }
39052 
39053 
39054 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39055     auto operator<=>( ExternalMemoryBufferCreateInfo const& ) const = default;
39056 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39057     bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39058     {
39059       return ( sType == rhs.sType )
39060           && ( pNext == rhs.pNext )
39061           && ( handleTypes == rhs.handleTypes );
39062     }
39063 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo39064     bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39065     {
39066       return !operator==( rhs );
39067     }
39068 #endif
39069 
39070 
39071 
39072   public:
39073     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
39074     const void* pNext = {};
39075     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
39076 
39077   };
39078   static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" );
39079   static_assert( std::is_standard_layout<ExternalMemoryBufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
39080 
39081   template <>
39082   struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
39083   {
39084     using Type = ExternalMemoryBufferCreateInfo;
39085   };
39086 
39087   struct ExternalMemoryImageCreateInfo
39088   {
39089     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
39090 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39091     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
39092       : handleTypes( handleTypes_ )
39093     {}
39094 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39095     ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39096     {
39097       memcpy( &pNext, &rhs.pNext, sizeof( ExternalMemoryImageCreateInfo ) - offsetof( ExternalMemoryImageCreateInfo, pNext ) );
39098       return *this;
39099     }
39100 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39101     ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39102     {
39103       *this = rhs;
39104     }
39105 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39106     ExternalMemoryImageCreateInfo& operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39107     {
39108       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>(&rhs);
39109       return *this;
39110     }
39111 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39112     ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39113     {
39114       pNext = pNext_;
39115       return *this;
39116     }
39117 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39118     ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
39119     {
39120       handleTypes = handleTypes_;
39121       return *this;
39122     }
39123 
39124 
operator VkExternalMemoryImageCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39125     operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39126     {
39127       return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
39128     }
39129 
operator VkExternalMemoryImageCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39130     operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
39131     {
39132       return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
39133     }
39134 
39135 
39136 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39137     auto operator<=>( ExternalMemoryImageCreateInfo const& ) const = default;
39138 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39139     bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39140     {
39141       return ( sType == rhs.sType )
39142           && ( pNext == rhs.pNext )
39143           && ( handleTypes == rhs.handleTypes );
39144     }
39145 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo39146     bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39147     {
39148       return !operator==( rhs );
39149     }
39150 #endif
39151 
39152 
39153 
39154   public:
39155     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
39156     const void* pNext = {};
39157     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
39158 
39159   };
39160   static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" );
39161   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
39162 
39163   template <>
39164   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
39165   {
39166     using Type = ExternalMemoryImageCreateInfo;
39167   };
39168 
39169   struct ExternalMemoryImageCreateInfoNV
39170   {
39171     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
39172 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39173     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
39174       : handleTypes( handleTypes_ )
39175     {}
39176 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39177     ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39178     {
39179       memcpy( &pNext, &rhs.pNext, sizeof( ExternalMemoryImageCreateInfoNV ) - offsetof( ExternalMemoryImageCreateInfoNV, pNext ) );
39180       return *this;
39181     }
39182 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39183     ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39184     {
39185       *this = rhs;
39186     }
39187 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39188     ExternalMemoryImageCreateInfoNV& operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39189     {
39190       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>(&rhs);
39191       return *this;
39192     }
39193 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39194     ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39195     {
39196       pNext = pNext_;
39197       return *this;
39198     }
39199 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39200     ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
39201     {
39202       handleTypes = handleTypes_;
39203       return *this;
39204     }
39205 
39206 
operator VkExternalMemoryImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39207     operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
39208     {
39209       return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
39210     }
39211 
operator VkExternalMemoryImageCreateInfoNV&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39212     operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
39213     {
39214       return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
39215     }
39216 
39217 
39218 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39219     auto operator<=>( ExternalMemoryImageCreateInfoNV const& ) const = default;
39220 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39221     bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
39222     {
39223       return ( sType == rhs.sType )
39224           && ( pNext == rhs.pNext )
39225           && ( handleTypes == rhs.handleTypes );
39226     }
39227 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV39228     bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
39229     {
39230       return !operator==( rhs );
39231     }
39232 #endif
39233 
39234 
39235 
39236   public:
39237     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
39238     const void* pNext = {};
39239     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
39240 
39241   };
39242   static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" );
39243   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
39244 
39245   template <>
39246   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
39247   {
39248     using Type = ExternalMemoryImageCreateInfoNV;
39249   };
39250 
39251   struct ExternalSemaphoreProperties
39252   {
39253     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
39254 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39255     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {},
39256                                                       VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {},
39257                                                       VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
39258       : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
39259       , compatibleHandleTypes( compatibleHandleTypes_ )
39260       , externalSemaphoreFeatures( externalSemaphoreFeatures_ )
39261     {}
39262 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39263     ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
39264     {
39265       memcpy( &pNext, &rhs.pNext, sizeof( ExternalSemaphoreProperties ) - offsetof( ExternalSemaphoreProperties, pNext ) );
39266       return *this;
39267     }
39268 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39269     ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
39270     {
39271       *this = rhs;
39272     }
39273 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39274     ExternalSemaphoreProperties& operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
39275     {
39276       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>(&rhs);
39277       return *this;
39278     }
39279 
39280 
operator VkExternalSemaphoreProperties const&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39281     operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
39282     {
39283       return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
39284     }
39285 
operator VkExternalSemaphoreProperties&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39286     operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
39287     {
39288       return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
39289     }
39290 
39291 
39292 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39293     auto operator<=>( ExternalSemaphoreProperties const& ) const = default;
39294 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39295     bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
39296     {
39297       return ( sType == rhs.sType )
39298           && ( pNext == rhs.pNext )
39299           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
39300           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
39301           && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
39302     }
39303 
operator !=VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties39304     bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
39305     {
39306       return !operator==( rhs );
39307     }
39308 #endif
39309 
39310 
39311 
39312   public:
39313     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
39314     void* pNext = {};
39315     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
39316     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
39317     VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
39318 
39319   };
39320   static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" );
39321   static_assert( std::is_standard_layout<ExternalSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
39322 
39323   template <>
39324   struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
39325   {
39326     using Type = ExternalSemaphoreProperties;
39327   };
39328 
39329   struct FenceCreateInfo
39330   {
39331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
39332 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo39333     VULKAN_HPP_CONSTEXPR FenceCreateInfo( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
39334       : flags( flags_ )
39335     {}
39336 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo39337     FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39338     {
39339       memcpy( &pNext, &rhs.pNext, sizeof( FenceCreateInfo ) - offsetof( FenceCreateInfo, pNext ) );
39340       return *this;
39341     }
39342 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo39343     FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39344     {
39345       *this = rhs;
39346     }
39347 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo39348     FenceCreateInfo& operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39349     {
39350       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>(&rhs);
39351       return *this;
39352     }
39353 
setPNextVULKAN_HPP_NAMESPACE::FenceCreateInfo39354     FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39355     {
39356       pNext = pNext_;
39357       return *this;
39358     }
39359 
setFlagsVULKAN_HPP_NAMESPACE::FenceCreateInfo39360     FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39361     {
39362       flags = flags_;
39363       return *this;
39364     }
39365 
39366 
operator VkFenceCreateInfo const&VULKAN_HPP_NAMESPACE::FenceCreateInfo39367     operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39368     {
39369       return *reinterpret_cast<const VkFenceCreateInfo*>( this );
39370     }
39371 
operator VkFenceCreateInfo&VULKAN_HPP_NAMESPACE::FenceCreateInfo39372     operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
39373     {
39374       return *reinterpret_cast<VkFenceCreateInfo*>( this );
39375     }
39376 
39377 
39378 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39379     auto operator<=>( FenceCreateInfo const& ) const = default;
39380 #else
operator ==VULKAN_HPP_NAMESPACE::FenceCreateInfo39381     bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39382     {
39383       return ( sType == rhs.sType )
39384           && ( pNext == rhs.pNext )
39385           && ( flags == rhs.flags );
39386     }
39387 
operator !=VULKAN_HPP_NAMESPACE::FenceCreateInfo39388     bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39389     {
39390       return !operator==( rhs );
39391     }
39392 #endif
39393 
39394 
39395 
39396   public:
39397     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
39398     const void* pNext = {};
39399     VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
39400 
39401   };
39402   static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
39403   static_assert( std::is_standard_layout<FenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
39404 
39405   template <>
39406   struct CppType<StructureType, StructureType::eFenceCreateInfo>
39407   {
39408     using Type = FenceCreateInfo;
39409   };
39410 
39411   struct FenceGetFdInfoKHR
39412   {
39413     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
39414 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39415     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {},
39416                                             VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
39417       : fence( fence_ )
39418       , handleType( handleType_ )
39419     {}
39420 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39421     FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39422     {
39423       memcpy( &pNext, &rhs.pNext, sizeof( FenceGetFdInfoKHR ) - offsetof( FenceGetFdInfoKHR, pNext ) );
39424       return *this;
39425     }
39426 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39427     FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39428     {
39429       *this = rhs;
39430     }
39431 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39432     FenceGetFdInfoKHR& operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39433     {
39434       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>(&rhs);
39435       return *this;
39436     }
39437 
setPNextVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39438     FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39439     {
39440       pNext = pNext_;
39441       return *this;
39442     }
39443 
setFenceVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39444     FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
39445     {
39446       fence = fence_;
39447       return *this;
39448     }
39449 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39450     FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
39451     {
39452       handleType = handleType_;
39453       return *this;
39454     }
39455 
39456 
operator VkFenceGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39457     operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39458     {
39459       return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
39460     }
39461 
operator VkFenceGetFdInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39462     operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
39463     {
39464       return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
39465     }
39466 
39467 
39468 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39469     auto operator<=>( FenceGetFdInfoKHR const& ) const = default;
39470 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39471     bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39472     {
39473       return ( sType == rhs.sType )
39474           && ( pNext == rhs.pNext )
39475           && ( fence == rhs.fence )
39476           && ( handleType == rhs.handleType );
39477     }
39478 
operator !=VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR39479     bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39480     {
39481       return !operator==( rhs );
39482     }
39483 #endif
39484 
39485 
39486 
39487   public:
39488     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
39489     const void* pNext = {};
39490     VULKAN_HPP_NAMESPACE::Fence fence = {};
39491     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
39492 
39493   };
39494   static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" );
39495   static_assert( std::is_standard_layout<FenceGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
39496 
39497   template <>
39498   struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
39499   {
39500     using Type = FenceGetFdInfoKHR;
39501   };
39502 
39503 #ifdef VK_USE_PLATFORM_WIN32_KHR
39504   struct FenceGetWin32HandleInfoKHR
39505   {
39506     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
39507 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39508     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {},
39509                                                      VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
39510       : fence( fence_ )
39511       , handleType( handleType_ )
39512     {}
39513 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39514     FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39515     {
39516       memcpy( &pNext, &rhs.pNext, sizeof( FenceGetWin32HandleInfoKHR ) - offsetof( FenceGetWin32HandleInfoKHR, pNext ) );
39517       return *this;
39518     }
39519 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39520     FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39521     {
39522       *this = rhs;
39523     }
39524 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39525     FenceGetWin32HandleInfoKHR& operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39526     {
39527       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>(&rhs);
39528       return *this;
39529     }
39530 
setPNextVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39531     FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39532     {
39533       pNext = pNext_;
39534       return *this;
39535     }
39536 
setFenceVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39537     FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
39538     {
39539       fence = fence_;
39540       return *this;
39541     }
39542 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39543     FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
39544     {
39545       handleType = handleType_;
39546       return *this;
39547     }
39548 
39549 
operator VkFenceGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39550     operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39551     {
39552       return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
39553     }
39554 
operator VkFenceGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39555     operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
39556     {
39557       return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
39558     }
39559 
39560 
39561 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39562     auto operator<=>( FenceGetWin32HandleInfoKHR const& ) const = default;
39563 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39564     bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39565     {
39566       return ( sType == rhs.sType )
39567           && ( pNext == rhs.pNext )
39568           && ( fence == rhs.fence )
39569           && ( handleType == rhs.handleType );
39570     }
39571 
operator !=VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR39572     bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39573     {
39574       return !operator==( rhs );
39575     }
39576 #endif
39577 
39578 
39579 
39580   public:
39581     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
39582     const void* pNext = {};
39583     VULKAN_HPP_NAMESPACE::Fence fence = {};
39584     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
39585 
39586   };
39587   static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
39588   static_assert( std::is_standard_layout<FenceGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
39589 
39590   template <>
39591   struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
39592   {
39593     using Type = FenceGetWin32HandleInfoKHR;
39594   };
39595 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
39596 
39597   struct FilterCubicImageViewImageFormatPropertiesEXT
39598   {
39599     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
39600 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39601     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {},
39602                                                                        VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {} ) VULKAN_HPP_NOEXCEPT
39603       : filterCubic( filterCubic_ )
39604       , filterCubicMinmax( filterCubicMinmax_ )
39605     {}
39606 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39607     FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39608     {
39609       memcpy( &pNext, &rhs.pNext, sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) - offsetof( FilterCubicImageViewImageFormatPropertiesEXT, pNext ) );
39610       return *this;
39611     }
39612 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39613     FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39614     {
39615       *this = rhs;
39616     }
39617 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39618     FilterCubicImageViewImageFormatPropertiesEXT& operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39619     {
39620       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>(&rhs);
39621       return *this;
39622     }
39623 
39624 
operator VkFilterCubicImageViewImageFormatPropertiesEXT const&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39625     operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
39626     {
39627       return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
39628     }
39629 
operator VkFilterCubicImageViewImageFormatPropertiesEXT&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39630     operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
39631     {
39632       return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
39633     }
39634 
39635 
39636 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39637     auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const& ) const = default;
39638 #else
operator ==VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39639     bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39640     {
39641       return ( sType == rhs.sType )
39642           && ( pNext == rhs.pNext )
39643           && ( filterCubic == rhs.filterCubic )
39644           && ( filterCubicMinmax == rhs.filterCubicMinmax );
39645     }
39646 
operator !=VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT39647     bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39648     {
39649       return !operator==( rhs );
39650     }
39651 #endif
39652 
39653 
39654 
39655   public:
39656     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
39657     void* pNext = {};
39658     VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
39659     VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
39660 
39661   };
39662   static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" );
39663   static_assert( std::is_standard_layout<FilterCubicImageViewImageFormatPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
39664 
39665   template <>
39666   struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
39667   {
39668     using Type = FilterCubicImageViewImageFormatPropertiesEXT;
39669   };
39670 
39671   struct FormatProperties
39672   {
39673 
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties39674     VULKAN_HPP_CONSTEXPR FormatProperties( VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {},
39675                                            VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {},
39676                                            VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
39677       : linearTilingFeatures( linearTilingFeatures_ )
39678       , optimalTilingFeatures( optimalTilingFeatures_ )
39679       , bufferFeatures( bufferFeatures_ )
39680     {}
39681 
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties39682     FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
39683     {
39684       *this = rhs;
39685     }
39686 
operator =VULKAN_HPP_NAMESPACE::FormatProperties39687     FormatProperties& operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
39688     {
39689       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>(&rhs);
39690       return *this;
39691     }
39692 
39693 
operator VkFormatProperties const&VULKAN_HPP_NAMESPACE::FormatProperties39694     operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT
39695     {
39696       return *reinterpret_cast<const VkFormatProperties*>( this );
39697     }
39698 
operator VkFormatProperties&VULKAN_HPP_NAMESPACE::FormatProperties39699     operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
39700     {
39701       return *reinterpret_cast<VkFormatProperties*>( this );
39702     }
39703 
39704 
39705 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39706     auto operator<=>( FormatProperties const& ) const = default;
39707 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties39708     bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
39709     {
39710       return ( linearTilingFeatures == rhs.linearTilingFeatures )
39711           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
39712           && ( bufferFeatures == rhs.bufferFeatures );
39713     }
39714 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties39715     bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
39716     {
39717       return !operator==( rhs );
39718     }
39719 #endif
39720 
39721 
39722 
39723   public:
39724     VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
39725     VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
39726     VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
39727 
39728   };
39729   static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" );
39730   static_assert( std::is_standard_layout<FormatProperties>::value, "struct wrapper is not a standard layout!" );
39731 
39732   struct FormatProperties2
39733   {
39734     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
39735 
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties239736     VULKAN_HPP_CONSTEXPR FormatProperties2( VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {} ) VULKAN_HPP_NOEXCEPT
39737       : formatProperties( formatProperties_ )
39738     {}
39739 
operator =VULKAN_HPP_NAMESPACE::FormatProperties239740     FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
39741     {
39742       memcpy( &pNext, &rhs.pNext, sizeof( FormatProperties2 ) - offsetof( FormatProperties2, pNext ) );
39743       return *this;
39744     }
39745 
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties239746     FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
39747     {
39748       *this = rhs;
39749     }
39750 
operator =VULKAN_HPP_NAMESPACE::FormatProperties239751     FormatProperties2& operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
39752     {
39753       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>(&rhs);
39754       return *this;
39755     }
39756 
39757 
operator VkFormatProperties2 const&VULKAN_HPP_NAMESPACE::FormatProperties239758     operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
39759     {
39760       return *reinterpret_cast<const VkFormatProperties2*>( this );
39761     }
39762 
operator VkFormatProperties2&VULKAN_HPP_NAMESPACE::FormatProperties239763     operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
39764     {
39765       return *reinterpret_cast<VkFormatProperties2*>( this );
39766     }
39767 
39768 
39769 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39770     auto operator<=>( FormatProperties2 const& ) const = default;
39771 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties239772     bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
39773     {
39774       return ( sType == rhs.sType )
39775           && ( pNext == rhs.pNext )
39776           && ( formatProperties == rhs.formatProperties );
39777     }
39778 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties239779     bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
39780     {
39781       return !operator==( rhs );
39782     }
39783 #endif
39784 
39785 
39786 
39787   public:
39788     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
39789     void* pNext = {};
39790     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
39791 
39792   };
39793   static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" );
39794   static_assert( std::is_standard_layout<FormatProperties2>::value, "struct wrapper is not a standard layout!" );
39795 
39796   template <>
39797   struct CppType<StructureType, StructureType::eFormatProperties2>
39798   {
39799     using Type = FormatProperties2;
39800   };
39801 
39802   struct FramebufferAttachmentImageInfo
39803   {
39804     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
39805 
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39806     VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
39807                                                          VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
39808                                                          uint32_t width_ = {},
39809                                                          uint32_t height_ = {},
39810                                                          uint32_t layerCount_ = {},
39811                                                          uint32_t viewFormatCount_ = {},
39812                                                          const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {} ) VULKAN_HPP_NOEXCEPT
39813       : flags( flags_ )
39814       , usage( usage_ )
39815       , width( width_ )
39816       , height( height_ )
39817       , layerCount( layerCount_ )
39818       , viewFormatCount( viewFormatCount_ )
39819       , pViewFormats( pViewFormats_ )
39820     {}
39821 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39822     FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39823     {
39824       memcpy( &pNext, &rhs.pNext, sizeof( FramebufferAttachmentImageInfo ) - offsetof( FramebufferAttachmentImageInfo, pNext ) );
39825       return *this;
39826     }
39827 
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39828     FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39829     {
39830       *this = rhs;
39831     }
39832 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39833     FramebufferAttachmentImageInfo& operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39834     {
39835       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>(&rhs);
39836       return *this;
39837     }
39838 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39839     FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39840     {
39841       pNext = pNext_;
39842       return *this;
39843     }
39844 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39845     FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39846     {
39847       flags = flags_;
39848       return *this;
39849     }
39850 
setUsageVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39851     FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
39852     {
39853       usage = usage_;
39854       return *this;
39855     }
39856 
setWidthVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39857     FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
39858     {
39859       width = width_;
39860       return *this;
39861     }
39862 
setHeightVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39863     FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
39864     {
39865       height = height_;
39866       return *this;
39867     }
39868 
setLayerCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39869     FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
39870     {
39871       layerCount = layerCount_;
39872       return *this;
39873     }
39874 
setViewFormatCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39875     FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
39876     {
39877       viewFormatCount = viewFormatCount_;
39878       return *this;
39879     }
39880 
setPViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39881     FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
39882     {
39883       pViewFormats = pViewFormats_;
39884       return *this;
39885     }
39886 
39887 
operator VkFramebufferAttachmentImageInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39888     operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT
39889     {
39890       return *reinterpret_cast<const VkFramebufferAttachmentImageInfo*>( this );
39891     }
39892 
operator VkFramebufferAttachmentImageInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39893     operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
39894     {
39895       return *reinterpret_cast<VkFramebufferAttachmentImageInfo*>( this );
39896     }
39897 
39898 
39899 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39900     auto operator<=>( FramebufferAttachmentImageInfo const& ) const = default;
39901 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39902     bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39903     {
39904       return ( sType == rhs.sType )
39905           && ( pNext == rhs.pNext )
39906           && ( flags == rhs.flags )
39907           && ( usage == rhs.usage )
39908           && ( width == rhs.width )
39909           && ( height == rhs.height )
39910           && ( layerCount == rhs.layerCount )
39911           && ( viewFormatCount == rhs.viewFormatCount )
39912           && ( pViewFormats == rhs.pViewFormats );
39913     }
39914 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo39915     bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39916     {
39917       return !operator==( rhs );
39918     }
39919 #endif
39920 
39921 
39922 
39923   public:
39924     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
39925     const void* pNext = {};
39926     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
39927     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
39928     uint32_t width = {};
39929     uint32_t height = {};
39930     uint32_t layerCount = {};
39931     uint32_t viewFormatCount = {};
39932     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
39933 
39934   };
39935   static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" );
39936   static_assert( std::is_standard_layout<FramebufferAttachmentImageInfo>::value, "struct wrapper is not a standard layout!" );
39937 
39938   template <>
39939   struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
39940   {
39941     using Type = FramebufferAttachmentImageInfo;
39942   };
39943 
39944   struct FramebufferAttachmentsCreateInfo
39945   {
39946     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
39947 
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39948     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( uint32_t attachmentImageInfoCount_ = {},
39949                                                            const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {} ) VULKAN_HPP_NOEXCEPT
39950       : attachmentImageInfoCount( attachmentImageInfoCount_ )
39951       , pAttachmentImageInfos( pAttachmentImageInfos_ )
39952     {}
39953 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39954     FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39955     {
39956       memcpy( &pNext, &rhs.pNext, sizeof( FramebufferAttachmentsCreateInfo ) - offsetof( FramebufferAttachmentsCreateInfo, pNext ) );
39957       return *this;
39958     }
39959 
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39960     FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39961     {
39962       *this = rhs;
39963     }
39964 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39965     FramebufferAttachmentsCreateInfo& operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39966     {
39967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>(&rhs);
39968       return *this;
39969     }
39970 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39971     FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39972     {
39973       pNext = pNext_;
39974       return *this;
39975     }
39976 
setAttachmentImageInfoCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39977     FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
39978     {
39979       attachmentImageInfoCount = attachmentImageInfoCount_;
39980       return *this;
39981     }
39982 
setPAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39983     FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
39984     {
39985       pAttachmentImageInfos = pAttachmentImageInfos_;
39986       return *this;
39987     }
39988 
39989 
operator VkFramebufferAttachmentsCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39990     operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39991     {
39992       return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>( this );
39993     }
39994 
operator VkFramebufferAttachmentsCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo39995     operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
39996     {
39997       return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>( this );
39998     }
39999 
40000 
40001 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40002     auto operator<=>( FramebufferAttachmentsCreateInfo const& ) const = default;
40003 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo40004     bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40005     {
40006       return ( sType == rhs.sType )
40007           && ( pNext == rhs.pNext )
40008           && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
40009           && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
40010     }
40011 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo40012     bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40013     {
40014       return !operator==( rhs );
40015     }
40016 #endif
40017 
40018 
40019 
40020   public:
40021     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
40022     const void* pNext = {};
40023     uint32_t attachmentImageInfoCount = {};
40024     const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {};
40025 
40026   };
40027   static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" );
40028   static_assert( std::is_standard_layout<FramebufferAttachmentsCreateInfo>::value, "struct wrapper is not a standard layout!" );
40029 
40030   template <>
40031   struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
40032   {
40033     using Type = FramebufferAttachmentsCreateInfo;
40034   };
40035 
40036   struct FramebufferCreateInfo
40037   {
40038     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
40039 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40040     VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {},
40041                                                 VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
40042                                                 uint32_t attachmentCount_ = {},
40043                                                 const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {},
40044                                                 uint32_t width_ = {},
40045                                                 uint32_t height_ = {},
40046                                                 uint32_t layers_ = {} ) VULKAN_HPP_NOEXCEPT
40047       : flags( flags_ )
40048       , renderPass( renderPass_ )
40049       , attachmentCount( attachmentCount_ )
40050       , pAttachments( pAttachments_ )
40051       , width( width_ )
40052       , height( height_ )
40053       , layers( layers_ )
40054     {}
40055 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo40056     FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40057     {
40058       memcpy( &pNext, &rhs.pNext, sizeof( FramebufferCreateInfo ) - offsetof( FramebufferCreateInfo, pNext ) );
40059       return *this;
40060     }
40061 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40062     FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40063     {
40064       *this = rhs;
40065     }
40066 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo40067     FramebufferCreateInfo& operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40068     {
40069       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>(&rhs);
40070       return *this;
40071     }
40072 
setPNextVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40073     FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40074     {
40075       pNext = pNext_;
40076       return *this;
40077     }
40078 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40079     FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40080     {
40081       flags = flags_;
40082       return *this;
40083     }
40084 
setRenderPassVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40085     FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
40086     {
40087       renderPass = renderPass_;
40088       return *this;
40089     }
40090 
setAttachmentCountVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40091     FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
40092     {
40093       attachmentCount = attachmentCount_;
40094       return *this;
40095     }
40096 
setPAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40097     FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
40098     {
40099       pAttachments = pAttachments_;
40100       return *this;
40101     }
40102 
setWidthVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40103     FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
40104     {
40105       width = width_;
40106       return *this;
40107     }
40108 
setHeightVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40109     FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
40110     {
40111       height = height_;
40112       return *this;
40113     }
40114 
setLayersVULKAN_HPP_NAMESPACE::FramebufferCreateInfo40115     FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
40116     {
40117       layers = layers_;
40118       return *this;
40119     }
40120 
40121 
operator VkFramebufferCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo40122     operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40123     {
40124       return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
40125     }
40126 
operator VkFramebufferCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo40127     operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
40128     {
40129       return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
40130     }
40131 
40132 
40133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40134     auto operator<=>( FramebufferCreateInfo const& ) const = default;
40135 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferCreateInfo40136     bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40137     {
40138       return ( sType == rhs.sType )
40139           && ( pNext == rhs.pNext )
40140           && ( flags == rhs.flags )
40141           && ( renderPass == rhs.renderPass )
40142           && ( attachmentCount == rhs.attachmentCount )
40143           && ( pAttachments == rhs.pAttachments )
40144           && ( width == rhs.width )
40145           && ( height == rhs.height )
40146           && ( layers == rhs.layers );
40147     }
40148 
operator !=VULKAN_HPP_NAMESPACE::FramebufferCreateInfo40149     bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40150     {
40151       return !operator==( rhs );
40152     }
40153 #endif
40154 
40155 
40156 
40157   public:
40158     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
40159     const void* pNext = {};
40160     VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
40161     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
40162     uint32_t attachmentCount = {};
40163     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
40164     uint32_t width = {};
40165     uint32_t height = {};
40166     uint32_t layers = {};
40167 
40168   };
40169   static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" );
40170   static_assert( std::is_standard_layout<FramebufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
40171 
40172   template <>
40173   struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
40174   {
40175     using Type = FramebufferCreateInfo;
40176   };
40177 
40178   struct FramebufferMixedSamplesCombinationNV
40179   {
40180     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
40181 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40182     VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge,
40183                                                                VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
40184                                                                VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {},
40185                                                                VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {} ) VULKAN_HPP_NOEXCEPT
40186       : coverageReductionMode( coverageReductionMode_ )
40187       , rasterizationSamples( rasterizationSamples_ )
40188       , depthStencilSamples( depthStencilSamples_ )
40189       , colorSamples( colorSamples_ )
40190     {}
40191 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40192     FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
40193     {
40194       memcpy( &pNext, &rhs.pNext, sizeof( FramebufferMixedSamplesCombinationNV ) - offsetof( FramebufferMixedSamplesCombinationNV, pNext ) );
40195       return *this;
40196     }
40197 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40198     FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
40199     {
40200       *this = rhs;
40201     }
40202 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40203     FramebufferMixedSamplesCombinationNV& operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
40204     {
40205       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>(&rhs);
40206       return *this;
40207     }
40208 
40209 
operator VkFramebufferMixedSamplesCombinationNV const&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40210     operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT
40211     {
40212       return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
40213     }
40214 
operator VkFramebufferMixedSamplesCombinationNV&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40215     operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
40216     {
40217       return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
40218     }
40219 
40220 
40221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40222     auto operator<=>( FramebufferMixedSamplesCombinationNV const& ) const = default;
40223 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40224     bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40225     {
40226       return ( sType == rhs.sType )
40227           && ( pNext == rhs.pNext )
40228           && ( coverageReductionMode == rhs.coverageReductionMode )
40229           && ( rasterizationSamples == rhs.rasterizationSamples )
40230           && ( depthStencilSamples == rhs.depthStencilSamples )
40231           && ( colorSamples == rhs.colorSamples );
40232     }
40233 
operator !=VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV40234     bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40235     {
40236       return !operator==( rhs );
40237     }
40238 #endif
40239 
40240 
40241 
40242   public:
40243     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
40244     void* pNext = {};
40245     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
40246     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
40247     VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
40248     VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
40249 
40250   };
40251   static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" );
40252   static_assert( std::is_standard_layout<FramebufferMixedSamplesCombinationNV>::value, "struct wrapper is not a standard layout!" );
40253 
40254   template <>
40255   struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
40256   {
40257     using Type = FramebufferMixedSamplesCombinationNV;
40258   };
40259 
40260   struct IndirectCommandsStreamNV
40261   {
40262 
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40263     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
40264                                                    VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT
40265       : buffer( buffer_ )
40266       , offset( offset_ )
40267     {}
40268 
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40269     IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
40270     {
40271       *this = rhs;
40272     }
40273 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40274     IndirectCommandsStreamNV& operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
40275     {
40276       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>(&rhs);
40277       return *this;
40278     }
40279 
setBufferVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40280     IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
40281     {
40282       buffer = buffer_;
40283       return *this;
40284     }
40285 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40286     IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
40287     {
40288       offset = offset_;
40289       return *this;
40290     }
40291 
40292 
operator VkIndirectCommandsStreamNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40293     operator VkIndirectCommandsStreamNV const&() const VULKAN_HPP_NOEXCEPT
40294     {
40295       return *reinterpret_cast<const VkIndirectCommandsStreamNV*>( this );
40296     }
40297 
operator VkIndirectCommandsStreamNV&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40298     operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
40299     {
40300       return *reinterpret_cast<VkIndirectCommandsStreamNV*>( this );
40301     }
40302 
40303 
40304 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40305     auto operator<=>( IndirectCommandsStreamNV const& ) const = default;
40306 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40307     bool operator==( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40308     {
40309       return ( buffer == rhs.buffer )
40310           && ( offset == rhs.offset );
40311     }
40312 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV40313     bool operator!=( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40314     {
40315       return !operator==( rhs );
40316     }
40317 #endif
40318 
40319 
40320 
40321   public:
40322     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
40323     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
40324 
40325   };
40326   static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), "struct and wrapper have different size!" );
40327   static_assert( std::is_standard_layout<IndirectCommandsStreamNV>::value, "struct wrapper is not a standard layout!" );
40328 
40329   struct GeneratedCommandsInfoNV
40330   {
40331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
40332 
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40333     VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
40334                                                   VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
40335                                                   VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {},
40336                                                   uint32_t streamCount_ = {},
40337                                                   const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ = {},
40338                                                   uint32_t sequencesCount_ = {},
40339                                                   VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {},
40340                                                   VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {},
40341                                                   VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {},
40342                                                   VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {},
40343                                                   VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {},
40344                                                   VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {},
40345                                                   VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {} ) VULKAN_HPP_NOEXCEPT
40346       : pipelineBindPoint( pipelineBindPoint_ )
40347       , pipeline( pipeline_ )
40348       , indirectCommandsLayout( indirectCommandsLayout_ )
40349       , streamCount( streamCount_ )
40350       , pStreams( pStreams_ )
40351       , sequencesCount( sequencesCount_ )
40352       , preprocessBuffer( preprocessBuffer_ )
40353       , preprocessOffset( preprocessOffset_ )
40354       , preprocessSize( preprocessSize_ )
40355       , sequencesCountBuffer( sequencesCountBuffer_ )
40356       , sequencesCountOffset( sequencesCountOffset_ )
40357       , sequencesIndexBuffer( sequencesIndexBuffer_ )
40358       , sequencesIndexOffset( sequencesIndexOffset_ )
40359     {}
40360 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40361     GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40362     {
40363       memcpy( &pNext, &rhs.pNext, sizeof( GeneratedCommandsInfoNV ) - offsetof( GeneratedCommandsInfoNV, pNext ) );
40364       return *this;
40365     }
40366 
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40367     GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40368     {
40369       *this = rhs;
40370     }
40371 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40372     GeneratedCommandsInfoNV& operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40373     {
40374       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>(&rhs);
40375       return *this;
40376     }
40377 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40378     GeneratedCommandsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40379     {
40380       pNext = pNext_;
40381       return *this;
40382     }
40383 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40384     GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
40385     {
40386       pipelineBindPoint = pipelineBindPoint_;
40387       return *this;
40388     }
40389 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40390     GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
40391     {
40392       pipeline = pipeline_;
40393       return *this;
40394     }
40395 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40396     GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
40397     {
40398       indirectCommandsLayout = indirectCommandsLayout_;
40399       return *this;
40400     }
40401 
setStreamCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40402     GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
40403     {
40404       streamCount = streamCount_;
40405       return *this;
40406     }
40407 
setPStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40408     GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ ) VULKAN_HPP_NOEXCEPT
40409     {
40410       pStreams = pStreams_;
40411       return *this;
40412     }
40413 
setSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40414     GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
40415     {
40416       sequencesCount = sequencesCount_;
40417       return *this;
40418     }
40419 
setPreprocessBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40420     GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
40421     {
40422       preprocessBuffer = preprocessBuffer_;
40423       return *this;
40424     }
40425 
setPreprocessOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40426     GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
40427     {
40428       preprocessOffset = preprocessOffset_;
40429       return *this;
40430     }
40431 
setPreprocessSizeVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40432     GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
40433     {
40434       preprocessSize = preprocessSize_;
40435       return *this;
40436     }
40437 
setSequencesCountBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40438     GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
40439     {
40440       sequencesCountBuffer = sequencesCountBuffer_;
40441       return *this;
40442     }
40443 
setSequencesCountOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40444     GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
40445     {
40446       sequencesCountOffset = sequencesCountOffset_;
40447       return *this;
40448     }
40449 
setSequencesIndexBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40450     GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
40451     {
40452       sequencesIndexBuffer = sequencesIndexBuffer_;
40453       return *this;
40454     }
40455 
setSequencesIndexOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40456     GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
40457     {
40458       sequencesIndexOffset = sequencesIndexOffset_;
40459       return *this;
40460     }
40461 
40462 
operator VkGeneratedCommandsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40463     operator VkGeneratedCommandsInfoNV const&() const VULKAN_HPP_NOEXCEPT
40464     {
40465       return *reinterpret_cast<const VkGeneratedCommandsInfoNV*>( this );
40466     }
40467 
operator VkGeneratedCommandsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40468     operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
40469     {
40470       return *reinterpret_cast<VkGeneratedCommandsInfoNV*>( this );
40471     }
40472 
40473 
40474 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40475     auto operator<=>( GeneratedCommandsInfoNV const& ) const = default;
40476 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40477     bool operator==( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40478     {
40479       return ( sType == rhs.sType )
40480           && ( pNext == rhs.pNext )
40481           && ( pipelineBindPoint == rhs.pipelineBindPoint )
40482           && ( pipeline == rhs.pipeline )
40483           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
40484           && ( streamCount == rhs.streamCount )
40485           && ( pStreams == rhs.pStreams )
40486           && ( sequencesCount == rhs.sequencesCount )
40487           && ( preprocessBuffer == rhs.preprocessBuffer )
40488           && ( preprocessOffset == rhs.preprocessOffset )
40489           && ( preprocessSize == rhs.preprocessSize )
40490           && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
40491           && ( sequencesCountOffset == rhs.sequencesCountOffset )
40492           && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
40493           && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
40494     }
40495 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV40496     bool operator!=( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40497     {
40498       return !operator==( rhs );
40499     }
40500 #endif
40501 
40502 
40503 
40504   public:
40505     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
40506     const void* pNext = {};
40507     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
40508     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
40509     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
40510     uint32_t streamCount = {};
40511     const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams = {};
40512     uint32_t sequencesCount = {};
40513     VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
40514     VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
40515     VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
40516     VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
40517     VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
40518     VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
40519     VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
40520 
40521   };
40522   static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), "struct and wrapper have different size!" );
40523   static_assert( std::is_standard_layout<GeneratedCommandsInfoNV>::value, "struct wrapper is not a standard layout!" );
40524 
40525   template <>
40526   struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
40527   {
40528     using Type = GeneratedCommandsInfoNV;
40529   };
40530 
40531   struct GeneratedCommandsMemoryRequirementsInfoNV
40532   {
40533     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
40534 
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40535     VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
40536                                                                     VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
40537                                                                     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {},
40538                                                                     uint32_t maxSequencesCount_ = {} ) VULKAN_HPP_NOEXCEPT
40539       : pipelineBindPoint( pipelineBindPoint_ )
40540       , pipeline( pipeline_ )
40541       , indirectCommandsLayout( indirectCommandsLayout_ )
40542       , maxSequencesCount( maxSequencesCount_ )
40543     {}
40544 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40545     GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40546     {
40547       memcpy( &pNext, &rhs.pNext, sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) - offsetof( GeneratedCommandsMemoryRequirementsInfoNV, pNext ) );
40548       return *this;
40549     }
40550 
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40551     GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40552     {
40553       *this = rhs;
40554     }
40555 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40556     GeneratedCommandsMemoryRequirementsInfoNV& operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40557     {
40558       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>(&rhs);
40559       return *this;
40560     }
40561 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40562     GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40563     {
40564       pNext = pNext_;
40565       return *this;
40566     }
40567 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40568     GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
40569     {
40570       pipelineBindPoint = pipelineBindPoint_;
40571       return *this;
40572     }
40573 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40574     GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
40575     {
40576       pipeline = pipeline_;
40577       return *this;
40578     }
40579 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40580     GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
40581     {
40582       indirectCommandsLayout = indirectCommandsLayout_;
40583       return *this;
40584     }
40585 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40586     GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
40587     {
40588       maxSequencesCount = maxSequencesCount_;
40589       return *this;
40590     }
40591 
40592 
operator VkGeneratedCommandsMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40593     operator VkGeneratedCommandsMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
40594     {
40595       return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
40596     }
40597 
operator VkGeneratedCommandsMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40598     operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
40599     {
40600       return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
40601     }
40602 
40603 
40604 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40605     auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const& ) const = default;
40606 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40607     bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40608     {
40609       return ( sType == rhs.sType )
40610           && ( pNext == rhs.pNext )
40611           && ( pipelineBindPoint == rhs.pipelineBindPoint )
40612           && ( pipeline == rhs.pipeline )
40613           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
40614           && ( maxSequencesCount == rhs.maxSequencesCount );
40615     }
40616 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV40617     bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40618     {
40619       return !operator==( rhs );
40620     }
40621 #endif
40622 
40623 
40624 
40625   public:
40626     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
40627     const void* pNext = {};
40628     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
40629     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
40630     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
40631     uint32_t maxSequencesCount = {};
40632 
40633   };
40634   static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
40635   static_assert( std::is_standard_layout<GeneratedCommandsMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
40636 
40637   template <>
40638   struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
40639   {
40640     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
40641   };
40642 
40643   struct VertexInputBindingDescription
40644   {
40645 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription40646     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( uint32_t binding_ = {},
40647                                                         uint32_t stride_ = {},
40648                                                         VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex ) VULKAN_HPP_NOEXCEPT
40649       : binding( binding_ )
40650       , stride( stride_ )
40651       , inputRate( inputRate_ )
40652     {}
40653 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription40654     VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40655     {
40656       *this = rhs;
40657     }
40658 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription40659     VertexInputBindingDescription& operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40660     {
40661       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>(&rhs);
40662       return *this;
40663     }
40664 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription40665     VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
40666     {
40667       binding = binding_;
40668       return *this;
40669     }
40670 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription40671     VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
40672     {
40673       stride = stride_;
40674       return *this;
40675     }
40676 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription40677     VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
40678     {
40679       inputRate = inputRate_;
40680       return *this;
40681     }
40682 
40683 
operator VkVertexInputBindingDescription const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription40684     operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT
40685     {
40686       return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
40687     }
40688 
operator VkVertexInputBindingDescription&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription40689     operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
40690     {
40691       return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
40692     }
40693 
40694 
40695 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40696     auto operator<=>( VertexInputBindingDescription const& ) const = default;
40697 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription40698     bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40699     {
40700       return ( binding == rhs.binding )
40701           && ( stride == rhs.stride )
40702           && ( inputRate == rhs.inputRate );
40703     }
40704 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription40705     bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40706     {
40707       return !operator==( rhs );
40708     }
40709 #endif
40710 
40711 
40712 
40713   public:
40714     uint32_t binding = {};
40715     uint32_t stride = {};
40716     VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
40717 
40718   };
40719   static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" );
40720   static_assert( std::is_standard_layout<VertexInputBindingDescription>::value, "struct wrapper is not a standard layout!" );
40721 
40722   struct VertexInputAttributeDescription
40723   {
40724 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40725     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( uint32_t location_ = {},
40726                                                           uint32_t binding_ = {},
40727                                                           VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
40728                                                           uint32_t offset_ = {} ) VULKAN_HPP_NOEXCEPT
40729       : location( location_ )
40730       , binding( binding_ )
40731       , format( format_ )
40732       , offset( offset_ )
40733     {}
40734 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40735     VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40736     {
40737       *this = rhs;
40738     }
40739 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40740     VertexInputAttributeDescription& operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40741     {
40742       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>(&rhs);
40743       return *this;
40744     }
40745 
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40746     VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
40747     {
40748       location = location_;
40749       return *this;
40750     }
40751 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40752     VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
40753     {
40754       binding = binding_;
40755       return *this;
40756     }
40757 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40758     VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
40759     {
40760       format = format_;
40761       return *this;
40762     }
40763 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40764     VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
40765     {
40766       offset = offset_;
40767       return *this;
40768     }
40769 
40770 
operator VkVertexInputAttributeDescription const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40771     operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT
40772     {
40773       return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
40774     }
40775 
operator VkVertexInputAttributeDescription&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40776     operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
40777     {
40778       return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
40779     }
40780 
40781 
40782 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40783     auto operator<=>( VertexInputAttributeDescription const& ) const = default;
40784 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40785     bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40786     {
40787       return ( location == rhs.location )
40788           && ( binding == rhs.binding )
40789           && ( format == rhs.format )
40790           && ( offset == rhs.offset );
40791     }
40792 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription40793     bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40794     {
40795       return !operator==( rhs );
40796     }
40797 #endif
40798 
40799 
40800 
40801   public:
40802     uint32_t location = {};
40803     uint32_t binding = {};
40804     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
40805     uint32_t offset = {};
40806 
40807   };
40808   static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" );
40809   static_assert( std::is_standard_layout<VertexInputAttributeDescription>::value, "struct wrapper is not a standard layout!" );
40810 
40811   struct PipelineVertexInputStateCreateInfo
40812   {
40813     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
40814 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40815     VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {},
40816                                                              uint32_t vertexBindingDescriptionCount_ = {},
40817                                                              const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ = {},
40818                                                              uint32_t vertexAttributeDescriptionCount_ = {},
40819                                                              const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ = {} ) VULKAN_HPP_NOEXCEPT
40820       : flags( flags_ )
40821       , vertexBindingDescriptionCount( vertexBindingDescriptionCount_ )
40822       , pVertexBindingDescriptions( pVertexBindingDescriptions_ )
40823       , vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ )
40824       , pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
40825     {}
40826 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40827     PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40828     {
40829       memcpy( &pNext, &rhs.pNext, sizeof( PipelineVertexInputStateCreateInfo ) - offsetof( PipelineVertexInputStateCreateInfo, pNext ) );
40830       return *this;
40831     }
40832 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40833     PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40834     {
40835       *this = rhs;
40836     }
40837 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40838     PipelineVertexInputStateCreateInfo& operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40839     {
40840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>(&rhs);
40841       return *this;
40842     }
40843 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40844     PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40845     {
40846       pNext = pNext_;
40847       return *this;
40848     }
40849 
setFlagsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40850     PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40851     {
40852       flags = flags_;
40853       return *this;
40854     }
40855 
setVertexBindingDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40856     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
40857     {
40858       vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
40859       return *this;
40860     }
40861 
setPVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40862     PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
40863     {
40864       pVertexBindingDescriptions = pVertexBindingDescriptions_;
40865       return *this;
40866     }
40867 
setVertexAttributeDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40868     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
40869     {
40870       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
40871       return *this;
40872     }
40873 
setPVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40874     PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
40875     {
40876       pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
40877       return *this;
40878     }
40879 
40880 
operator VkPipelineVertexInputStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40881     operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40882     {
40883       return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
40884     }
40885 
operator VkPipelineVertexInputStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40886     operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
40887     {
40888       return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
40889     }
40890 
40891 
40892 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40893     auto operator<=>( PipelineVertexInputStateCreateInfo const& ) const = default;
40894 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40895     bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40896     {
40897       return ( sType == rhs.sType )
40898           && ( pNext == rhs.pNext )
40899           && ( flags == rhs.flags )
40900           && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
40901           && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
40902           && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
40903           && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
40904     }
40905 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo40906     bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40907     {
40908       return !operator==( rhs );
40909     }
40910 #endif
40911 
40912 
40913 
40914   public:
40915     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
40916     const void* pNext = {};
40917     VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
40918     uint32_t vertexBindingDescriptionCount = {};
40919     const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {};
40920     uint32_t vertexAttributeDescriptionCount = {};
40921     const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {};
40922 
40923   };
40924   static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" );
40925   static_assert( std::is_standard_layout<PipelineVertexInputStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
40926 
40927   template <>
40928   struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
40929   {
40930     using Type = PipelineVertexInputStateCreateInfo;
40931   };
40932 
40933   struct PipelineInputAssemblyStateCreateInfo
40934   {
40935     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
40936 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40937     VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {},
40938                                                                VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList,
40939                                                                VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {} ) VULKAN_HPP_NOEXCEPT
40940       : flags( flags_ )
40941       , topology( topology_ )
40942       , primitiveRestartEnable( primitiveRestartEnable_ )
40943     {}
40944 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40945     PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40946     {
40947       memcpy( &pNext, &rhs.pNext, sizeof( PipelineInputAssemblyStateCreateInfo ) - offsetof( PipelineInputAssemblyStateCreateInfo, pNext ) );
40948       return *this;
40949     }
40950 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40951     PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40952     {
40953       *this = rhs;
40954     }
40955 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40956     PipelineInputAssemblyStateCreateInfo& operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40957     {
40958       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>(&rhs);
40959       return *this;
40960     }
40961 
setPNextVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40962     PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40963     {
40964       pNext = pNext_;
40965       return *this;
40966     }
40967 
setFlagsVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40968     PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40969     {
40970       flags = flags_;
40971       return *this;
40972     }
40973 
setTopologyVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40974     PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
40975     {
40976       topology = topology_;
40977       return *this;
40978     }
40979 
setPrimitiveRestartEnableVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40980     PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
40981     {
40982       primitiveRestartEnable = primitiveRestartEnable_;
40983       return *this;
40984     }
40985 
40986 
operator VkPipelineInputAssemblyStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40987     operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40988     {
40989       return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
40990     }
40991 
operator VkPipelineInputAssemblyStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo40992     operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
40993     {
40994       return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
40995     }
40996 
40997 
40998 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40999     auto operator<=>( PipelineInputAssemblyStateCreateInfo const& ) const = default;
41000 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo41001     bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41002     {
41003       return ( sType == rhs.sType )
41004           && ( pNext == rhs.pNext )
41005           && ( flags == rhs.flags )
41006           && ( topology == rhs.topology )
41007           && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
41008     }
41009 
operator !=VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo41010     bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41011     {
41012       return !operator==( rhs );
41013     }
41014 #endif
41015 
41016 
41017 
41018   public:
41019     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
41020     const void* pNext = {};
41021     VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
41022     VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
41023     VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
41024 
41025   };
41026   static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" );
41027   static_assert( std::is_standard_layout<PipelineInputAssemblyStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
41028 
41029   template <>
41030   struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
41031   {
41032     using Type = PipelineInputAssemblyStateCreateInfo;
41033   };
41034 
41035   struct PipelineTessellationStateCreateInfo
41036   {
41037     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
41038 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41039     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {},
41040                                                               uint32_t patchControlPoints_ = {} ) VULKAN_HPP_NOEXCEPT
41041       : flags( flags_ )
41042       , patchControlPoints( patchControlPoints_ )
41043     {}
41044 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41045     PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41046     {
41047       memcpy( &pNext, &rhs.pNext, sizeof( PipelineTessellationStateCreateInfo ) - offsetof( PipelineTessellationStateCreateInfo, pNext ) );
41048       return *this;
41049     }
41050 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41051     PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41052     {
41053       *this = rhs;
41054     }
41055 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41056     PipelineTessellationStateCreateInfo& operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41057     {
41058       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>(&rhs);
41059       return *this;
41060     }
41061 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41062     PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41063     {
41064       pNext = pNext_;
41065       return *this;
41066     }
41067 
setFlagsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41068     PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41069     {
41070       flags = flags_;
41071       return *this;
41072     }
41073 
setPatchControlPointsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41074     PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
41075     {
41076       patchControlPoints = patchControlPoints_;
41077       return *this;
41078     }
41079 
41080 
operator VkPipelineTessellationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41081     operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41082     {
41083       return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
41084     }
41085 
operator VkPipelineTessellationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41086     operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
41087     {
41088       return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
41089     }
41090 
41091 
41092 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41093     auto operator<=>( PipelineTessellationStateCreateInfo const& ) const = default;
41094 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41095     bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41096     {
41097       return ( sType == rhs.sType )
41098           && ( pNext == rhs.pNext )
41099           && ( flags == rhs.flags )
41100           && ( patchControlPoints == rhs.patchControlPoints );
41101     }
41102 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo41103     bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41104     {
41105       return !operator==( rhs );
41106     }
41107 #endif
41108 
41109 
41110 
41111   public:
41112     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
41113     const void* pNext = {};
41114     VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
41115     uint32_t patchControlPoints = {};
41116 
41117   };
41118   static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" );
41119   static_assert( std::is_standard_layout<PipelineTessellationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
41120 
41121   template <>
41122   struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
41123   {
41124     using Type = PipelineTessellationStateCreateInfo;
41125   };
41126 
41127   struct Viewport
41128   {
41129 
ViewportVULKAN_HPP_NAMESPACE::Viewport41130     VULKAN_HPP_CONSTEXPR Viewport( float x_ = {},
41131                                    float y_ = {},
41132                                    float width_ = {},
41133                                    float height_ = {},
41134                                    float minDepth_ = {},
41135                                    float maxDepth_ = {} ) VULKAN_HPP_NOEXCEPT
41136       : x( x_ )
41137       , y( y_ )
41138       , width( width_ )
41139       , height( height_ )
41140       , minDepth( minDepth_ )
41141       , maxDepth( maxDepth_ )
41142     {}
41143 
ViewportVULKAN_HPP_NAMESPACE::Viewport41144     Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
41145     {
41146       *this = rhs;
41147     }
41148 
operator =VULKAN_HPP_NAMESPACE::Viewport41149     Viewport& operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
41150     {
41151       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>(&rhs);
41152       return *this;
41153     }
41154 
setXVULKAN_HPP_NAMESPACE::Viewport41155     Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
41156     {
41157       x = x_;
41158       return *this;
41159     }
41160 
setYVULKAN_HPP_NAMESPACE::Viewport41161     Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
41162     {
41163       y = y_;
41164       return *this;
41165     }
41166 
setWidthVULKAN_HPP_NAMESPACE::Viewport41167     Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
41168     {
41169       width = width_;
41170       return *this;
41171     }
41172 
setHeightVULKAN_HPP_NAMESPACE::Viewport41173     Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
41174     {
41175       height = height_;
41176       return *this;
41177     }
41178 
setMinDepthVULKAN_HPP_NAMESPACE::Viewport41179     Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
41180     {
41181       minDepth = minDepth_;
41182       return *this;
41183     }
41184 
setMaxDepthVULKAN_HPP_NAMESPACE::Viewport41185     Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
41186     {
41187       maxDepth = maxDepth_;
41188       return *this;
41189     }
41190 
41191 
operator VkViewport const&VULKAN_HPP_NAMESPACE::Viewport41192     operator VkViewport const&() const VULKAN_HPP_NOEXCEPT
41193     {
41194       return *reinterpret_cast<const VkViewport*>( this );
41195     }
41196 
operator VkViewport&VULKAN_HPP_NAMESPACE::Viewport41197     operator VkViewport &() VULKAN_HPP_NOEXCEPT
41198     {
41199       return *reinterpret_cast<VkViewport*>( this );
41200     }
41201 
41202 
41203 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41204     auto operator<=>( Viewport const& ) const = default;
41205 #else
operator ==VULKAN_HPP_NAMESPACE::Viewport41206     bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
41207     {
41208       return ( x == rhs.x )
41209           && ( y == rhs.y )
41210           && ( width == rhs.width )
41211           && ( height == rhs.height )
41212           && ( minDepth == rhs.minDepth )
41213           && ( maxDepth == rhs.maxDepth );
41214     }
41215 
operator !=VULKAN_HPP_NAMESPACE::Viewport41216     bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
41217     {
41218       return !operator==( rhs );
41219     }
41220 #endif
41221 
41222 
41223 
41224   public:
41225     float x = {};
41226     float y = {};
41227     float width = {};
41228     float height = {};
41229     float minDepth = {};
41230     float maxDepth = {};
41231 
41232   };
41233   static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" );
41234   static_assert( std::is_standard_layout<Viewport>::value, "struct wrapper is not a standard layout!" );
41235 
41236   struct PipelineViewportStateCreateInfo
41237   {
41238     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
41239 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41240     VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {},
41241                                                           uint32_t viewportCount_ = {},
41242                                                           const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ = {},
41243                                                           uint32_t scissorCount_ = {},
41244                                                           const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ = {} ) VULKAN_HPP_NOEXCEPT
41245       : flags( flags_ )
41246       , viewportCount( viewportCount_ )
41247       , pViewports( pViewports_ )
41248       , scissorCount( scissorCount_ )
41249       , pScissors( pScissors_ )
41250     {}
41251 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41252     PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41253     {
41254       memcpy( &pNext, &rhs.pNext, sizeof( PipelineViewportStateCreateInfo ) - offsetof( PipelineViewportStateCreateInfo, pNext ) );
41255       return *this;
41256     }
41257 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41258     PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41259     {
41260       *this = rhs;
41261     }
41262 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41263     PipelineViewportStateCreateInfo& operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41264     {
41265       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>(&rhs);
41266       return *this;
41267     }
41268 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41269     PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41270     {
41271       pNext = pNext_;
41272       return *this;
41273     }
41274 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41275     PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41276     {
41277       flags = flags_;
41278       return *this;
41279     }
41280 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41281     PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
41282     {
41283       viewportCount = viewportCount_;
41284       return *this;
41285     }
41286 
setPViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41287     PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT
41288     {
41289       pViewports = pViewports_;
41290       return *this;
41291     }
41292 
setScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41293     PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
41294     {
41295       scissorCount = scissorCount_;
41296       return *this;
41297     }
41298 
setPScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41299     PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT
41300     {
41301       pScissors = pScissors_;
41302       return *this;
41303     }
41304 
41305 
operator VkPipelineViewportStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41306     operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41307     {
41308       return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
41309     }
41310 
operator VkPipelineViewportStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41311     operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
41312     {
41313       return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
41314     }
41315 
41316 
41317 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41318     auto operator<=>( PipelineViewportStateCreateInfo const& ) const = default;
41319 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41320     bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41321     {
41322       return ( sType == rhs.sType )
41323           && ( pNext == rhs.pNext )
41324           && ( flags == rhs.flags )
41325           && ( viewportCount == rhs.viewportCount )
41326           && ( pViewports == rhs.pViewports )
41327           && ( scissorCount == rhs.scissorCount )
41328           && ( pScissors == rhs.pScissors );
41329     }
41330 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo41331     bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41332     {
41333       return !operator==( rhs );
41334     }
41335 #endif
41336 
41337 
41338 
41339   public:
41340     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
41341     const void* pNext = {};
41342     VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
41343     uint32_t viewportCount = {};
41344     const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {};
41345     uint32_t scissorCount = {};
41346     const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {};
41347 
41348   };
41349   static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" );
41350   static_assert( std::is_standard_layout<PipelineViewportStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
41351 
41352   template <>
41353   struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
41354   {
41355     using Type = PipelineViewportStateCreateInfo;
41356   };
41357 
41358   struct PipelineRasterizationStateCreateInfo
41359   {
41360     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
41361 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41362     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {},
41363                                                                VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {},
41364                                                                VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {},
41365                                                                VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill,
41366                                                                VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {},
41367                                                                VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise,
41368                                                                VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {},
41369                                                                float depthBiasConstantFactor_ = {},
41370                                                                float depthBiasClamp_ = {},
41371                                                                float depthBiasSlopeFactor_ = {},
41372                                                                float lineWidth_ = {} ) VULKAN_HPP_NOEXCEPT
41373       : flags( flags_ )
41374       , depthClampEnable( depthClampEnable_ )
41375       , rasterizerDiscardEnable( rasterizerDiscardEnable_ )
41376       , polygonMode( polygonMode_ )
41377       , cullMode( cullMode_ )
41378       , frontFace( frontFace_ )
41379       , depthBiasEnable( depthBiasEnable_ )
41380       , depthBiasConstantFactor( depthBiasConstantFactor_ )
41381       , depthBiasClamp( depthBiasClamp_ )
41382       , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
41383       , lineWidth( lineWidth_ )
41384     {}
41385 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41386     PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41387     {
41388       memcpy( &pNext, &rhs.pNext, sizeof( PipelineRasterizationStateCreateInfo ) - offsetof( PipelineRasterizationStateCreateInfo, pNext ) );
41389       return *this;
41390     }
41391 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41392     PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41393     {
41394       *this = rhs;
41395     }
41396 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41397     PipelineRasterizationStateCreateInfo& operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41398     {
41399       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>(&rhs);
41400       return *this;
41401     }
41402 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41403     PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41404     {
41405       pNext = pNext_;
41406       return *this;
41407     }
41408 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41409     PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41410     {
41411       flags = flags_;
41412       return *this;
41413     }
41414 
setDepthClampEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41415     PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
41416     {
41417       depthClampEnable = depthClampEnable_;
41418       return *this;
41419     }
41420 
setRasterizerDiscardEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41421     PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
41422     {
41423       rasterizerDiscardEnable = rasterizerDiscardEnable_;
41424       return *this;
41425     }
41426 
setPolygonModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41427     PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
41428     {
41429       polygonMode = polygonMode_;
41430       return *this;
41431     }
41432 
setCullModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41433     PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
41434     {
41435       cullMode = cullMode_;
41436       return *this;
41437     }
41438 
setFrontFaceVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41439     PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
41440     {
41441       frontFace = frontFace_;
41442       return *this;
41443     }
41444 
setDepthBiasEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41445     PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
41446     {
41447       depthBiasEnable = depthBiasEnable_;
41448       return *this;
41449     }
41450 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41451     PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
41452     {
41453       depthBiasConstantFactor = depthBiasConstantFactor_;
41454       return *this;
41455     }
41456 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41457     PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
41458     {
41459       depthBiasClamp = depthBiasClamp_;
41460       return *this;
41461     }
41462 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41463     PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
41464     {
41465       depthBiasSlopeFactor = depthBiasSlopeFactor_;
41466       return *this;
41467     }
41468 
setLineWidthVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41469     PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
41470     {
41471       lineWidth = lineWidth_;
41472       return *this;
41473     }
41474 
41475 
operator VkPipelineRasterizationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41476     operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41477     {
41478       return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
41479     }
41480 
operator VkPipelineRasterizationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41481     operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
41482     {
41483       return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
41484     }
41485 
41486 
41487 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41488     auto operator<=>( PipelineRasterizationStateCreateInfo const& ) const = default;
41489 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41490     bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41491     {
41492       return ( sType == rhs.sType )
41493           && ( pNext == rhs.pNext )
41494           && ( flags == rhs.flags )
41495           && ( depthClampEnable == rhs.depthClampEnable )
41496           && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
41497           && ( polygonMode == rhs.polygonMode )
41498           && ( cullMode == rhs.cullMode )
41499           && ( frontFace == rhs.frontFace )
41500           && ( depthBiasEnable == rhs.depthBiasEnable )
41501           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
41502           && ( depthBiasClamp == rhs.depthBiasClamp )
41503           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
41504           && ( lineWidth == rhs.lineWidth );
41505     }
41506 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo41507     bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41508     {
41509       return !operator==( rhs );
41510     }
41511 #endif
41512 
41513 
41514 
41515   public:
41516     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
41517     const void* pNext = {};
41518     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
41519     VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
41520     VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
41521     VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
41522     VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
41523     VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
41524     VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
41525     float depthBiasConstantFactor = {};
41526     float depthBiasClamp = {};
41527     float depthBiasSlopeFactor = {};
41528     float lineWidth = {};
41529 
41530   };
41531   static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" );
41532   static_assert( std::is_standard_layout<PipelineRasterizationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
41533 
41534   template <>
41535   struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
41536   {
41537     using Type = PipelineRasterizationStateCreateInfo;
41538   };
41539 
41540   struct PipelineMultisampleStateCreateInfo
41541   {
41542     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
41543 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41544     VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {},
41545                                                              VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
41546                                                              VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {},
41547                                                              float minSampleShading_ = {},
41548                                                              const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ = {},
41549                                                              VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {},
41550                                                              VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {} ) VULKAN_HPP_NOEXCEPT
41551       : flags( flags_ )
41552       , rasterizationSamples( rasterizationSamples_ )
41553       , sampleShadingEnable( sampleShadingEnable_ )
41554       , minSampleShading( minSampleShading_ )
41555       , pSampleMask( pSampleMask_ )
41556       , alphaToCoverageEnable( alphaToCoverageEnable_ )
41557       , alphaToOneEnable( alphaToOneEnable_ )
41558     {}
41559 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41560     PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41561     {
41562       memcpy( &pNext, &rhs.pNext, sizeof( PipelineMultisampleStateCreateInfo ) - offsetof( PipelineMultisampleStateCreateInfo, pNext ) );
41563       return *this;
41564     }
41565 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41566     PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41567     {
41568       *this = rhs;
41569     }
41570 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41571     PipelineMultisampleStateCreateInfo& operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41572     {
41573       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>(&rhs);
41574       return *this;
41575     }
41576 
setPNextVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41577     PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41578     {
41579       pNext = pNext_;
41580       return *this;
41581     }
41582 
setFlagsVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41583     PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41584     {
41585       flags = flags_;
41586       return *this;
41587     }
41588 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41589     PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
41590     {
41591       rasterizationSamples = rasterizationSamples_;
41592       return *this;
41593     }
41594 
setSampleShadingEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41595     PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
41596     {
41597       sampleShadingEnable = sampleShadingEnable_;
41598       return *this;
41599     }
41600 
setMinSampleShadingVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41601     PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
41602     {
41603       minSampleShading = minSampleShading_;
41604       return *this;
41605     }
41606 
setPSampleMaskVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41607     PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT
41608     {
41609       pSampleMask = pSampleMask_;
41610       return *this;
41611     }
41612 
setAlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41613     PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
41614     {
41615       alphaToCoverageEnable = alphaToCoverageEnable_;
41616       return *this;
41617     }
41618 
setAlphaToOneEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41619     PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
41620     {
41621       alphaToOneEnable = alphaToOneEnable_;
41622       return *this;
41623     }
41624 
41625 
operator VkPipelineMultisampleStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41626     operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41627     {
41628       return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
41629     }
41630 
operator VkPipelineMultisampleStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41631     operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
41632     {
41633       return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
41634     }
41635 
41636 
41637 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41638     auto operator<=>( PipelineMultisampleStateCreateInfo const& ) const = default;
41639 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41640     bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41641     {
41642       return ( sType == rhs.sType )
41643           && ( pNext == rhs.pNext )
41644           && ( flags == rhs.flags )
41645           && ( rasterizationSamples == rhs.rasterizationSamples )
41646           && ( sampleShadingEnable == rhs.sampleShadingEnable )
41647           && ( minSampleShading == rhs.minSampleShading )
41648           && ( pSampleMask == rhs.pSampleMask )
41649           && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
41650           && ( alphaToOneEnable == rhs.alphaToOneEnable );
41651     }
41652 
operator !=VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo41653     bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41654     {
41655       return !operator==( rhs );
41656     }
41657 #endif
41658 
41659 
41660 
41661   public:
41662     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
41663     const void* pNext = {};
41664     VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
41665     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
41666     VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
41667     float minSampleShading = {};
41668     const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {};
41669     VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
41670     VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
41671 
41672   };
41673   static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" );
41674   static_assert( std::is_standard_layout<PipelineMultisampleStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
41675 
41676   template <>
41677   struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
41678   {
41679     using Type = PipelineMultisampleStateCreateInfo;
41680   };
41681 
41682   struct StencilOpState
41683   {
41684 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState41685     VULKAN_HPP_CONSTEXPR StencilOpState( VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
41686                                          VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
41687                                          VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
41688                                          VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
41689                                          uint32_t compareMask_ = {},
41690                                          uint32_t writeMask_ = {},
41691                                          uint32_t reference_ = {} ) VULKAN_HPP_NOEXCEPT
41692       : failOp( failOp_ )
41693       , passOp( passOp_ )
41694       , depthFailOp( depthFailOp_ )
41695       , compareOp( compareOp_ )
41696       , compareMask( compareMask_ )
41697       , writeMask( writeMask_ )
41698       , reference( reference_ )
41699     {}
41700 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState41701     StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
41702     {
41703       *this = rhs;
41704     }
41705 
operator =VULKAN_HPP_NAMESPACE::StencilOpState41706     StencilOpState& operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
41707     {
41708       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>(&rhs);
41709       return *this;
41710     }
41711 
setFailOpVULKAN_HPP_NAMESPACE::StencilOpState41712     StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
41713     {
41714       failOp = failOp_;
41715       return *this;
41716     }
41717 
setPassOpVULKAN_HPP_NAMESPACE::StencilOpState41718     StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
41719     {
41720       passOp = passOp_;
41721       return *this;
41722     }
41723 
setDepthFailOpVULKAN_HPP_NAMESPACE::StencilOpState41724     StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
41725     {
41726       depthFailOp = depthFailOp_;
41727       return *this;
41728     }
41729 
setCompareOpVULKAN_HPP_NAMESPACE::StencilOpState41730     StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
41731     {
41732       compareOp = compareOp_;
41733       return *this;
41734     }
41735 
setCompareMaskVULKAN_HPP_NAMESPACE::StencilOpState41736     StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
41737     {
41738       compareMask = compareMask_;
41739       return *this;
41740     }
41741 
setWriteMaskVULKAN_HPP_NAMESPACE::StencilOpState41742     StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
41743     {
41744       writeMask = writeMask_;
41745       return *this;
41746     }
41747 
setReferenceVULKAN_HPP_NAMESPACE::StencilOpState41748     StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
41749     {
41750       reference = reference_;
41751       return *this;
41752     }
41753 
41754 
operator VkStencilOpState const&VULKAN_HPP_NAMESPACE::StencilOpState41755     operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT
41756     {
41757       return *reinterpret_cast<const VkStencilOpState*>( this );
41758     }
41759 
operator VkStencilOpState&VULKAN_HPP_NAMESPACE::StencilOpState41760     operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
41761     {
41762       return *reinterpret_cast<VkStencilOpState*>( this );
41763     }
41764 
41765 
41766 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41767     auto operator<=>( StencilOpState const& ) const = default;
41768 #else
operator ==VULKAN_HPP_NAMESPACE::StencilOpState41769     bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
41770     {
41771       return ( failOp == rhs.failOp )
41772           && ( passOp == rhs.passOp )
41773           && ( depthFailOp == rhs.depthFailOp )
41774           && ( compareOp == rhs.compareOp )
41775           && ( compareMask == rhs.compareMask )
41776           && ( writeMask == rhs.writeMask )
41777           && ( reference == rhs.reference );
41778     }
41779 
operator !=VULKAN_HPP_NAMESPACE::StencilOpState41780     bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
41781     {
41782       return !operator==( rhs );
41783     }
41784 #endif
41785 
41786 
41787 
41788   public:
41789     VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
41790     VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
41791     VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
41792     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
41793     uint32_t compareMask = {};
41794     uint32_t writeMask = {};
41795     uint32_t reference = {};
41796 
41797   };
41798   static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" );
41799   static_assert( std::is_standard_layout<StencilOpState>::value, "struct wrapper is not a standard layout!" );
41800 
41801   struct PipelineDepthStencilStateCreateInfo
41802   {
41803     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
41804 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41805     VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {},
41806                                                               VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {},
41807                                                               VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {},
41808                                                               VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
41809                                                               VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {},
41810                                                               VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {},
41811                                                               VULKAN_HPP_NAMESPACE::StencilOpState front_ = {},
41812                                                               VULKAN_HPP_NAMESPACE::StencilOpState back_ = {},
41813                                                               float minDepthBounds_ = {},
41814                                                               float maxDepthBounds_ = {} ) VULKAN_HPP_NOEXCEPT
41815       : flags( flags_ )
41816       , depthTestEnable( depthTestEnable_ )
41817       , depthWriteEnable( depthWriteEnable_ )
41818       , depthCompareOp( depthCompareOp_ )
41819       , depthBoundsTestEnable( depthBoundsTestEnable_ )
41820       , stencilTestEnable( stencilTestEnable_ )
41821       , front( front_ )
41822       , back( back_ )
41823       , minDepthBounds( minDepthBounds_ )
41824       , maxDepthBounds( maxDepthBounds_ )
41825     {}
41826 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41827     PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41828     {
41829       memcpy( &pNext, &rhs.pNext, sizeof( PipelineDepthStencilStateCreateInfo ) - offsetof( PipelineDepthStencilStateCreateInfo, pNext ) );
41830       return *this;
41831     }
41832 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41833     PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41834     {
41835       *this = rhs;
41836     }
41837 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41838     PipelineDepthStencilStateCreateInfo& operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41839     {
41840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>(&rhs);
41841       return *this;
41842     }
41843 
setPNextVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41844     PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41845     {
41846       pNext = pNext_;
41847       return *this;
41848     }
41849 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41850     PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41851     {
41852       flags = flags_;
41853       return *this;
41854     }
41855 
setDepthTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41856     PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
41857     {
41858       depthTestEnable = depthTestEnable_;
41859       return *this;
41860     }
41861 
setDepthWriteEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41862     PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
41863     {
41864       depthWriteEnable = depthWriteEnable_;
41865       return *this;
41866     }
41867 
setDepthCompareOpVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41868     PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
41869     {
41870       depthCompareOp = depthCompareOp_;
41871       return *this;
41872     }
41873 
setDepthBoundsTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41874     PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
41875     {
41876       depthBoundsTestEnable = depthBoundsTestEnable_;
41877       return *this;
41878     }
41879 
setStencilTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41880     PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
41881     {
41882       stencilTestEnable = stencilTestEnable_;
41883       return *this;
41884     }
41885 
setFrontVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41886     PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
41887     {
41888       front = front_;
41889       return *this;
41890     }
41891 
setBackVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41892     PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
41893     {
41894       back = back_;
41895       return *this;
41896     }
41897 
setMinDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41898     PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
41899     {
41900       minDepthBounds = minDepthBounds_;
41901       return *this;
41902     }
41903 
setMaxDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41904     PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
41905     {
41906       maxDepthBounds = maxDepthBounds_;
41907       return *this;
41908     }
41909 
41910 
operator VkPipelineDepthStencilStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41911     operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41912     {
41913       return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
41914     }
41915 
operator VkPipelineDepthStencilStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41916     operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
41917     {
41918       return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
41919     }
41920 
41921 
41922 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41923     auto operator<=>( PipelineDepthStencilStateCreateInfo const& ) const = default;
41924 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41925     bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41926     {
41927       return ( sType == rhs.sType )
41928           && ( pNext == rhs.pNext )
41929           && ( flags == rhs.flags )
41930           && ( depthTestEnable == rhs.depthTestEnable )
41931           && ( depthWriteEnable == rhs.depthWriteEnable )
41932           && ( depthCompareOp == rhs.depthCompareOp )
41933           && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
41934           && ( stencilTestEnable == rhs.stencilTestEnable )
41935           && ( front == rhs.front )
41936           && ( back == rhs.back )
41937           && ( minDepthBounds == rhs.minDepthBounds )
41938           && ( maxDepthBounds == rhs.maxDepthBounds );
41939     }
41940 
operator !=VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo41941     bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41942     {
41943       return !operator==( rhs );
41944     }
41945 #endif
41946 
41947 
41948 
41949   public:
41950     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
41951     const void* pNext = {};
41952     VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
41953     VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
41954     VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
41955     VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
41956     VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
41957     VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
41958     VULKAN_HPP_NAMESPACE::StencilOpState front = {};
41959     VULKAN_HPP_NAMESPACE::StencilOpState back = {};
41960     float minDepthBounds = {};
41961     float maxDepthBounds = {};
41962 
41963   };
41964   static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" );
41965   static_assert( std::is_standard_layout<PipelineDepthStencilStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
41966 
41967   template <>
41968   struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
41969   {
41970     using Type = PipelineDepthStencilStateCreateInfo;
41971   };
41972 
41973   struct PipelineColorBlendAttachmentState
41974   {
41975 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState41976     VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {},
41977                                                             VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
41978                                                             VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
41979                                                             VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
41980                                                             VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
41981                                                             VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
41982                                                             VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
41983                                                             VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {} ) VULKAN_HPP_NOEXCEPT
41984       : blendEnable( blendEnable_ )
41985       , srcColorBlendFactor( srcColorBlendFactor_ )
41986       , dstColorBlendFactor( dstColorBlendFactor_ )
41987       , colorBlendOp( colorBlendOp_ )
41988       , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
41989       , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
41990       , alphaBlendOp( alphaBlendOp_ )
41991       , colorWriteMask( colorWriteMask_ )
41992     {}
41993 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState41994     PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
41995     {
41996       *this = rhs;
41997     }
41998 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState41999     PipelineColorBlendAttachmentState& operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
42000     {
42001       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>(&rhs);
42002       return *this;
42003     }
42004 
setBlendEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42005     PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
42006     {
42007       blendEnable = blendEnable_;
42008       return *this;
42009     }
42010 
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42011     PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
42012     {
42013       srcColorBlendFactor = srcColorBlendFactor_;
42014       return *this;
42015     }
42016 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42017     PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
42018     {
42019       dstColorBlendFactor = dstColorBlendFactor_;
42020       return *this;
42021     }
42022 
setColorBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42023     PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
42024     {
42025       colorBlendOp = colorBlendOp_;
42026       return *this;
42027     }
42028 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42029     PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
42030     {
42031       srcAlphaBlendFactor = srcAlphaBlendFactor_;
42032       return *this;
42033     }
42034 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42035     PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
42036     {
42037       dstAlphaBlendFactor = dstAlphaBlendFactor_;
42038       return *this;
42039     }
42040 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42041     PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
42042     {
42043       alphaBlendOp = alphaBlendOp_;
42044       return *this;
42045     }
42046 
setColorWriteMaskVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42047     PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
42048     {
42049       colorWriteMask = colorWriteMask_;
42050       return *this;
42051     }
42052 
42053 
operator VkPipelineColorBlendAttachmentState const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42054     operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT
42055     {
42056       return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
42057     }
42058 
operator VkPipelineColorBlendAttachmentState&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42059     operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
42060     {
42061       return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
42062     }
42063 
42064 
42065 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42066     auto operator<=>( PipelineColorBlendAttachmentState const& ) const = default;
42067 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42068     bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
42069     {
42070       return ( blendEnable == rhs.blendEnable )
42071           && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
42072           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
42073           && ( colorBlendOp == rhs.colorBlendOp )
42074           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
42075           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
42076           && ( alphaBlendOp == rhs.alphaBlendOp )
42077           && ( colorWriteMask == rhs.colorWriteMask );
42078     }
42079 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState42080     bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
42081     {
42082       return !operator==( rhs );
42083     }
42084 #endif
42085 
42086 
42087 
42088   public:
42089     VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
42090     VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
42091     VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
42092     VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
42093     VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
42094     VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
42095     VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
42096     VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
42097 
42098   };
42099   static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" );
42100   static_assert( std::is_standard_layout<PipelineColorBlendAttachmentState>::value, "struct wrapper is not a standard layout!" );
42101 
42102   struct PipelineColorBlendStateCreateInfo
42103   {
42104     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
42105 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42106     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {},
42107                                                                VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {},
42108                                                                VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear,
42109                                                                uint32_t attachmentCount_ = {},
42110                                                                const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ = {},
42111                                                                std::array<float,4> const& blendConstants_ = {} ) VULKAN_HPP_NOEXCEPT
42112       : flags( flags_ )
42113       , logicOpEnable( logicOpEnable_ )
42114       , logicOp( logicOp_ )
42115       , attachmentCount( attachmentCount_ )
42116       , pAttachments( pAttachments_ )
42117       , blendConstants( blendConstants_ )
42118     {}
42119 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42120     PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42121     {
42122       memcpy( &pNext, &rhs.pNext, sizeof( PipelineColorBlendStateCreateInfo ) - offsetof( PipelineColorBlendStateCreateInfo, pNext ) );
42123       return *this;
42124     }
42125 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42126     PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42127     {
42128       *this = rhs;
42129     }
42130 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42131     PipelineColorBlendStateCreateInfo& operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42132     {
42133       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>(&rhs);
42134       return *this;
42135     }
42136 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42137     PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42138     {
42139       pNext = pNext_;
42140       return *this;
42141     }
42142 
setFlagsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42143     PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42144     {
42145       flags = flags_;
42146       return *this;
42147     }
42148 
setLogicOpEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42149     PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
42150     {
42151       logicOpEnable = logicOpEnable_;
42152       return *this;
42153     }
42154 
setLogicOpVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42155     PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
42156     {
42157       logicOp = logicOp_;
42158       return *this;
42159     }
42160 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42161     PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
42162     {
42163       attachmentCount = attachmentCount_;
42164       return *this;
42165     }
42166 
setPAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42167     PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT
42168     {
42169       pAttachments = pAttachments_;
42170       return *this;
42171     }
42172 
setBlendConstantsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42173     PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
42174     {
42175       blendConstants = blendConstants_;
42176       return *this;
42177     }
42178 
42179 
operator VkPipelineColorBlendStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42180     operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42181     {
42182       return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
42183     }
42184 
operator VkPipelineColorBlendStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42185     operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
42186     {
42187       return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
42188     }
42189 
42190 
42191 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42192     auto operator<=>( PipelineColorBlendStateCreateInfo const& ) const = default;
42193 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42194     bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42195     {
42196       return ( sType == rhs.sType )
42197           && ( pNext == rhs.pNext )
42198           && ( flags == rhs.flags )
42199           && ( logicOpEnable == rhs.logicOpEnable )
42200           && ( logicOp == rhs.logicOp )
42201           && ( attachmentCount == rhs.attachmentCount )
42202           && ( pAttachments == rhs.pAttachments )
42203           && ( blendConstants == rhs.blendConstants );
42204     }
42205 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo42206     bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42207     {
42208       return !operator==( rhs );
42209     }
42210 #endif
42211 
42212 
42213 
42214   public:
42215     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
42216     const void* pNext = {};
42217     VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
42218     VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
42219     VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
42220     uint32_t attachmentCount = {};
42221     const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {};
42222     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
42223 
42224   };
42225   static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" );
42226   static_assert( std::is_standard_layout<PipelineColorBlendStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
42227 
42228   template <>
42229   struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
42230   {
42231     using Type = PipelineColorBlendStateCreateInfo;
42232   };
42233 
42234   struct PipelineDynamicStateCreateInfo
42235   {
42236     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
42237 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42238     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {},
42239                                                          uint32_t dynamicStateCount_ = {},
42240                                                          const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {} ) VULKAN_HPP_NOEXCEPT
42241       : flags( flags_ )
42242       , dynamicStateCount( dynamicStateCount_ )
42243       , pDynamicStates( pDynamicStates_ )
42244     {}
42245 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42246     PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42247     {
42248       memcpy( &pNext, &rhs.pNext, sizeof( PipelineDynamicStateCreateInfo ) - offsetof( PipelineDynamicStateCreateInfo, pNext ) );
42249       return *this;
42250     }
42251 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42252     PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42253     {
42254       *this = rhs;
42255     }
42256 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42257     PipelineDynamicStateCreateInfo& operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42258     {
42259       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>(&rhs);
42260       return *this;
42261     }
42262 
setPNextVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42263     PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42264     {
42265       pNext = pNext_;
42266       return *this;
42267     }
42268 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42269     PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42270     {
42271       flags = flags_;
42272       return *this;
42273     }
42274 
setDynamicStateCountVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42275     PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
42276     {
42277       dynamicStateCount = dynamicStateCount_;
42278       return *this;
42279     }
42280 
setPDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42281     PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
42282     {
42283       pDynamicStates = pDynamicStates_;
42284       return *this;
42285     }
42286 
42287 
operator VkPipelineDynamicStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42288     operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42289     {
42290       return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
42291     }
42292 
operator VkPipelineDynamicStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42293     operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
42294     {
42295       return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
42296     }
42297 
42298 
42299 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42300     auto operator<=>( PipelineDynamicStateCreateInfo const& ) const = default;
42301 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42302     bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42303     {
42304       return ( sType == rhs.sType )
42305           && ( pNext == rhs.pNext )
42306           && ( flags == rhs.flags )
42307           && ( dynamicStateCount == rhs.dynamicStateCount )
42308           && ( pDynamicStates == rhs.pDynamicStates );
42309     }
42310 
operator !=VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo42311     bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42312     {
42313       return !operator==( rhs );
42314     }
42315 #endif
42316 
42317 
42318 
42319   public:
42320     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
42321     const void* pNext = {};
42322     VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
42323     uint32_t dynamicStateCount = {};
42324     const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {};
42325 
42326   };
42327   static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" );
42328   static_assert( std::is_standard_layout<PipelineDynamicStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
42329 
42330   template <>
42331   struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
42332   {
42333     using Type = PipelineDynamicStateCreateInfo;
42334   };
42335 
42336   struct GraphicsPipelineCreateInfo
42337   {
42338     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
42339 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42340     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
42341                                                         uint32_t stageCount_ = {},
42342                                                         const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {},
42343                                                         const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {},
42344                                                         const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {},
42345                                                         const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {},
42346                                                         const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {},
42347                                                         const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {},
42348                                                         const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {},
42349                                                         const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {},
42350                                                         const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {},
42351                                                         const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {},
42352                                                         VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
42353                                                         VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
42354                                                         uint32_t subpass_ = {},
42355                                                         VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
42356                                                         int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT
42357       : flags( flags_ )
42358       , stageCount( stageCount_ )
42359       , pStages( pStages_ )
42360       , pVertexInputState( pVertexInputState_ )
42361       , pInputAssemblyState( pInputAssemblyState_ )
42362       , pTessellationState( pTessellationState_ )
42363       , pViewportState( pViewportState_ )
42364       , pRasterizationState( pRasterizationState_ )
42365       , pMultisampleState( pMultisampleState_ )
42366       , pDepthStencilState( pDepthStencilState_ )
42367       , pColorBlendState( pColorBlendState_ )
42368       , pDynamicState( pDynamicState_ )
42369       , layout( layout_ )
42370       , renderPass( renderPass_ )
42371       , subpass( subpass_ )
42372       , basePipelineHandle( basePipelineHandle_ )
42373       , basePipelineIndex( basePipelineIndex_ )
42374     {}
42375 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42376     GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42377     {
42378       memcpy( &pNext, &rhs.pNext, sizeof( GraphicsPipelineCreateInfo ) - offsetof( GraphicsPipelineCreateInfo, pNext ) );
42379       return *this;
42380     }
42381 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42382     GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42383     {
42384       *this = rhs;
42385     }
42386 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42387     GraphicsPipelineCreateInfo& operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42388     {
42389       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>(&rhs);
42390       return *this;
42391     }
42392 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42393     GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42394     {
42395       pNext = pNext_;
42396       return *this;
42397     }
42398 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42399     GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42400     {
42401       flags = flags_;
42402       return *this;
42403     }
42404 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42405     GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
42406     {
42407       stageCount = stageCount_;
42408       return *this;
42409     }
42410 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42411     GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
42412     {
42413       pStages = pStages_;
42414       return *this;
42415     }
42416 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42417     GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
42418     {
42419       pVertexInputState = pVertexInputState_;
42420       return *this;
42421     }
42422 
setPInputAssemblyStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42423     GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
42424     {
42425       pInputAssemblyState = pInputAssemblyState_;
42426       return *this;
42427     }
42428 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42429     GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
42430     {
42431       pTessellationState = pTessellationState_;
42432       return *this;
42433     }
42434 
setPViewportStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42435     GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT
42436     {
42437       pViewportState = pViewportState_;
42438       return *this;
42439     }
42440 
setPRasterizationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42441     GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
42442     {
42443       pRasterizationState = pRasterizationState_;
42444       return *this;
42445     }
42446 
setPMultisampleStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42447     GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
42448     {
42449       pMultisampleState = pMultisampleState_;
42450       return *this;
42451     }
42452 
setPDepthStencilStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42453     GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
42454     {
42455       pDepthStencilState = pDepthStencilState_;
42456       return *this;
42457     }
42458 
setPColorBlendStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42459     GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
42460     {
42461       pColorBlendState = pColorBlendState_;
42462       return *this;
42463     }
42464 
setPDynamicStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42465     GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT
42466     {
42467       pDynamicState = pDynamicState_;
42468       return *this;
42469     }
42470 
setLayoutVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42471     GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
42472     {
42473       layout = layout_;
42474       return *this;
42475     }
42476 
setRenderPassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42477     GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
42478     {
42479       renderPass = renderPass_;
42480       return *this;
42481     }
42482 
setSubpassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42483     GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
42484     {
42485       subpass = subpass_;
42486       return *this;
42487     }
42488 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42489     GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
42490     {
42491       basePipelineHandle = basePipelineHandle_;
42492       return *this;
42493     }
42494 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42495     GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
42496     {
42497       basePipelineIndex = basePipelineIndex_;
42498       return *this;
42499     }
42500 
42501 
operator VkGraphicsPipelineCreateInfo const&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42502     operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42503     {
42504       return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
42505     }
42506 
operator VkGraphicsPipelineCreateInfo&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42507     operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
42508     {
42509       return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
42510     }
42511 
42512 
42513 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42514     auto operator<=>( GraphicsPipelineCreateInfo const& ) const = default;
42515 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42516     bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42517     {
42518       return ( sType == rhs.sType )
42519           && ( pNext == rhs.pNext )
42520           && ( flags == rhs.flags )
42521           && ( stageCount == rhs.stageCount )
42522           && ( pStages == rhs.pStages )
42523           && ( pVertexInputState == rhs.pVertexInputState )
42524           && ( pInputAssemblyState == rhs.pInputAssemblyState )
42525           && ( pTessellationState == rhs.pTessellationState )
42526           && ( pViewportState == rhs.pViewportState )
42527           && ( pRasterizationState == rhs.pRasterizationState )
42528           && ( pMultisampleState == rhs.pMultisampleState )
42529           && ( pDepthStencilState == rhs.pDepthStencilState )
42530           && ( pColorBlendState == rhs.pColorBlendState )
42531           && ( pDynamicState == rhs.pDynamicState )
42532           && ( layout == rhs.layout )
42533           && ( renderPass == rhs.renderPass )
42534           && ( subpass == rhs.subpass )
42535           && ( basePipelineHandle == rhs.basePipelineHandle )
42536           && ( basePipelineIndex == rhs.basePipelineIndex );
42537     }
42538 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo42539     bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42540     {
42541       return !operator==( rhs );
42542     }
42543 #endif
42544 
42545 
42546 
42547   public:
42548     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
42549     const void* pNext = {};
42550     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
42551     uint32_t stageCount = {};
42552     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
42553     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
42554     const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {};
42555     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
42556     const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {};
42557     const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {};
42558     const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {};
42559     const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {};
42560     const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {};
42561     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {};
42562     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
42563     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
42564     uint32_t subpass = {};
42565     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
42566     int32_t basePipelineIndex = {};
42567 
42568   };
42569   static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" );
42570   static_assert( std::is_standard_layout<GraphicsPipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
42571 
42572   template <>
42573   struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
42574   {
42575     using Type = GraphicsPipelineCreateInfo;
42576   };
42577 
42578   struct GraphicsShaderGroupCreateInfoNV
42579   {
42580     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
42581 
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42582     VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( uint32_t stageCount_ = {},
42583                                                           const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {},
42584                                                           const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {},
42585                                                           const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {} ) VULKAN_HPP_NOEXCEPT
42586       : stageCount( stageCount_ )
42587       , pStages( pStages_ )
42588       , pVertexInputState( pVertexInputState_ )
42589       , pTessellationState( pTessellationState_ )
42590     {}
42591 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42592     GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
42593     {
42594       memcpy( &pNext, &rhs.pNext, sizeof( GraphicsShaderGroupCreateInfoNV ) - offsetof( GraphicsShaderGroupCreateInfoNV, pNext ) );
42595       return *this;
42596     }
42597 
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42598     GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
42599     {
42600       *this = rhs;
42601     }
42602 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42603     GraphicsShaderGroupCreateInfoNV& operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
42604     {
42605       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>(&rhs);
42606       return *this;
42607     }
42608 
setPNextVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42609     GraphicsShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42610     {
42611       pNext = pNext_;
42612       return *this;
42613     }
42614 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42615     GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
42616     {
42617       stageCount = stageCount_;
42618       return *this;
42619     }
42620 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42621     GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
42622     {
42623       pStages = pStages_;
42624       return *this;
42625     }
42626 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42627     GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
42628     {
42629       pVertexInputState = pVertexInputState_;
42630       return *this;
42631     }
42632 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42633     GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
42634     {
42635       pTessellationState = pTessellationState_;
42636       return *this;
42637     }
42638 
42639 
operator VkGraphicsShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42640     operator VkGraphicsShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
42641     {
42642       return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV*>( this );
42643     }
42644 
operator VkGraphicsShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42645     operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
42646     {
42647       return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV*>( this );
42648     }
42649 
42650 
42651 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42652     auto operator<=>( GraphicsShaderGroupCreateInfoNV const& ) const = default;
42653 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42654     bool operator==( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
42655     {
42656       return ( sType == rhs.sType )
42657           && ( pNext == rhs.pNext )
42658           && ( stageCount == rhs.stageCount )
42659           && ( pStages == rhs.pStages )
42660           && ( pVertexInputState == rhs.pVertexInputState )
42661           && ( pTessellationState == rhs.pTessellationState );
42662     }
42663 
operator !=VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV42664     bool operator!=( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
42665     {
42666       return !operator==( rhs );
42667     }
42668 #endif
42669 
42670 
42671 
42672   public:
42673     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
42674     const void* pNext = {};
42675     uint32_t stageCount = {};
42676     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
42677     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
42678     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
42679 
42680   };
42681   static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
42682   static_assert( std::is_standard_layout<GraphicsShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
42683 
42684   template <>
42685   struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
42686   {
42687     using Type = GraphicsShaderGroupCreateInfoNV;
42688   };
42689 
42690   struct GraphicsPipelineShaderGroupsCreateInfoNV
42691   {
42692     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
42693 
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42694     VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( uint32_t groupCount_ = {},
42695                                                                    const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ = {},
42696                                                                    uint32_t pipelineCount_ = {},
42697                                                                    const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ = {} ) VULKAN_HPP_NOEXCEPT
42698       : groupCount( groupCount_ )
42699       , pGroups( pGroups_ )
42700       , pipelineCount( pipelineCount_ )
42701       , pPipelines( pPipelines_ )
42702     {}
42703 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42704     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
42705     {
42706       memcpy( &pNext, &rhs.pNext, sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) - offsetof( GraphicsPipelineShaderGroupsCreateInfoNV, pNext ) );
42707       return *this;
42708     }
42709 
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42710     GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
42711     {
42712       *this = rhs;
42713     }
42714 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42715     GraphicsPipelineShaderGroupsCreateInfoNV& operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
42716     {
42717       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>(&rhs);
42718       return *this;
42719     }
42720 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42721     GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42722     {
42723       pNext = pNext_;
42724       return *this;
42725     }
42726 
setGroupCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42727     GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
42728     {
42729       groupCount = groupCount_;
42730       return *this;
42731     }
42732 
setPGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42733     GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
42734     {
42735       pGroups = pGroups_;
42736       return *this;
42737     }
42738 
setPipelineCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42739     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
42740     {
42741       pipelineCount = pipelineCount_;
42742       return *this;
42743     }
42744 
setPPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42745     GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ ) VULKAN_HPP_NOEXCEPT
42746     {
42747       pPipelines = pPipelines_;
42748       return *this;
42749     }
42750 
42751 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42752     operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
42753     {
42754       return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
42755     }
42756 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42757     operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
42758     {
42759       return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
42760     }
42761 
42762 
42763 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42764     auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const& ) const = default;
42765 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42766     bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
42767     {
42768       return ( sType == rhs.sType )
42769           && ( pNext == rhs.pNext )
42770           && ( groupCount == rhs.groupCount )
42771           && ( pGroups == rhs.pGroups )
42772           && ( pipelineCount == rhs.pipelineCount )
42773           && ( pPipelines == rhs.pPipelines );
42774     }
42775 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV42776     bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
42777     {
42778       return !operator==( rhs );
42779     }
42780 #endif
42781 
42782 
42783 
42784   public:
42785     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
42786     const void* pNext = {};
42787     uint32_t groupCount = {};
42788     const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups = {};
42789     uint32_t pipelineCount = {};
42790     const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines = {};
42791 
42792   };
42793   static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), "struct and wrapper have different size!" );
42794   static_assert( std::is_standard_layout<GraphicsPipelineShaderGroupsCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
42795 
42796   template <>
42797   struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
42798   {
42799     using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
42800   };
42801 
42802   struct XYColorEXT
42803   {
42804 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT42805     VULKAN_HPP_CONSTEXPR XYColorEXT( float x_ = {},
42806                                      float y_ = {} ) VULKAN_HPP_NOEXCEPT
42807       : x( x_ )
42808       , y( y_ )
42809     {}
42810 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT42811     XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42812     {
42813       *this = rhs;
42814     }
42815 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT42816     XYColorEXT& operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42817     {
42818       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>(&rhs);
42819       return *this;
42820     }
42821 
setXVULKAN_HPP_NAMESPACE::XYColorEXT42822     XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
42823     {
42824       x = x_;
42825       return *this;
42826     }
42827 
setYVULKAN_HPP_NAMESPACE::XYColorEXT42828     XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
42829     {
42830       y = y_;
42831       return *this;
42832     }
42833 
42834 
operator VkXYColorEXT const&VULKAN_HPP_NAMESPACE::XYColorEXT42835     operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT
42836     {
42837       return *reinterpret_cast<const VkXYColorEXT*>( this );
42838     }
42839 
operator VkXYColorEXT&VULKAN_HPP_NAMESPACE::XYColorEXT42840     operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
42841     {
42842       return *reinterpret_cast<VkXYColorEXT*>( this );
42843     }
42844 
42845 
42846 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42847     auto operator<=>( XYColorEXT const& ) const = default;
42848 #else
operator ==VULKAN_HPP_NAMESPACE::XYColorEXT42849     bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42850     {
42851       return ( x == rhs.x )
42852           && ( y == rhs.y );
42853     }
42854 
operator !=VULKAN_HPP_NAMESPACE::XYColorEXT42855     bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42856     {
42857       return !operator==( rhs );
42858     }
42859 #endif
42860 
42861 
42862 
42863   public:
42864     float x = {};
42865     float y = {};
42866 
42867   };
42868   static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" );
42869   static_assert( std::is_standard_layout<XYColorEXT>::value, "struct wrapper is not a standard layout!" );
42870 
42871   struct HdrMetadataEXT
42872   {
42873     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
42874 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT42875     VULKAN_HPP_CONSTEXPR HdrMetadataEXT( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {},
42876                                          VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {},
42877                                          VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {},
42878                                          VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {},
42879                                          float maxLuminance_ = {},
42880                                          float minLuminance_ = {},
42881                                          float maxContentLightLevel_ = {},
42882                                          float maxFrameAverageLightLevel_ = {} ) VULKAN_HPP_NOEXCEPT
42883       : displayPrimaryRed( displayPrimaryRed_ )
42884       , displayPrimaryGreen( displayPrimaryGreen_ )
42885       , displayPrimaryBlue( displayPrimaryBlue_ )
42886       , whitePoint( whitePoint_ )
42887       , maxLuminance( maxLuminance_ )
42888       , minLuminance( minLuminance_ )
42889       , maxContentLightLevel( maxContentLightLevel_ )
42890       , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
42891     {}
42892 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT42893     HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42894     {
42895       memcpy( &pNext, &rhs.pNext, sizeof( HdrMetadataEXT ) - offsetof( HdrMetadataEXT, pNext ) );
42896       return *this;
42897     }
42898 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT42899     HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42900     {
42901       *this = rhs;
42902     }
42903 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT42904     HdrMetadataEXT& operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42905     {
42906       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>(&rhs);
42907       return *this;
42908     }
42909 
setPNextVULKAN_HPP_NAMESPACE::HdrMetadataEXT42910     HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42911     {
42912       pNext = pNext_;
42913       return *this;
42914     }
42915 
setDisplayPrimaryRedVULKAN_HPP_NAMESPACE::HdrMetadataEXT42916     HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
42917     {
42918       displayPrimaryRed = displayPrimaryRed_;
42919       return *this;
42920     }
42921 
setDisplayPrimaryGreenVULKAN_HPP_NAMESPACE::HdrMetadataEXT42922     HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
42923     {
42924       displayPrimaryGreen = displayPrimaryGreen_;
42925       return *this;
42926     }
42927 
setDisplayPrimaryBlueVULKAN_HPP_NAMESPACE::HdrMetadataEXT42928     HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
42929     {
42930       displayPrimaryBlue = displayPrimaryBlue_;
42931       return *this;
42932     }
42933 
setWhitePointVULKAN_HPP_NAMESPACE::HdrMetadataEXT42934     HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
42935     {
42936       whitePoint = whitePoint_;
42937       return *this;
42938     }
42939 
setMaxLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT42940     HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
42941     {
42942       maxLuminance = maxLuminance_;
42943       return *this;
42944     }
42945 
setMinLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT42946     HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
42947     {
42948       minLuminance = minLuminance_;
42949       return *this;
42950     }
42951 
setMaxContentLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT42952     HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
42953     {
42954       maxContentLightLevel = maxContentLightLevel_;
42955       return *this;
42956     }
42957 
setMaxFrameAverageLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT42958     HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
42959     {
42960       maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
42961       return *this;
42962     }
42963 
42964 
operator VkHdrMetadataEXT const&VULKAN_HPP_NAMESPACE::HdrMetadataEXT42965     operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT
42966     {
42967       return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
42968     }
42969 
operator VkHdrMetadataEXT&VULKAN_HPP_NAMESPACE::HdrMetadataEXT42970     operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
42971     {
42972       return *reinterpret_cast<VkHdrMetadataEXT*>( this );
42973     }
42974 
42975 
42976 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42977     auto operator<=>( HdrMetadataEXT const& ) const = default;
42978 #else
operator ==VULKAN_HPP_NAMESPACE::HdrMetadataEXT42979     bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42980     {
42981       return ( sType == rhs.sType )
42982           && ( pNext == rhs.pNext )
42983           && ( displayPrimaryRed == rhs.displayPrimaryRed )
42984           && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
42985           && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
42986           && ( whitePoint == rhs.whitePoint )
42987           && ( maxLuminance == rhs.maxLuminance )
42988           && ( minLuminance == rhs.minLuminance )
42989           && ( maxContentLightLevel == rhs.maxContentLightLevel )
42990           && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
42991     }
42992 
operator !=VULKAN_HPP_NAMESPACE::HdrMetadataEXT42993     bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42994     {
42995       return !operator==( rhs );
42996     }
42997 #endif
42998 
42999 
43000 
43001   public:
43002     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
43003     const void* pNext = {};
43004     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
43005     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
43006     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
43007     VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
43008     float maxLuminance = {};
43009     float minLuminance = {};
43010     float maxContentLightLevel = {};
43011     float maxFrameAverageLightLevel = {};
43012 
43013   };
43014   static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" );
43015   static_assert( std::is_standard_layout<HdrMetadataEXT>::value, "struct wrapper is not a standard layout!" );
43016 
43017   template <>
43018   struct CppType<StructureType, StructureType::eHdrMetadataEXT>
43019   {
43020     using Type = HdrMetadataEXT;
43021   };
43022 
43023   struct HeadlessSurfaceCreateInfoEXT
43024   {
43025     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
43026 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43027     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {} ) VULKAN_HPP_NOEXCEPT
43028       : flags( flags_ )
43029     {}
43030 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43031     HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43032     {
43033       memcpy( &pNext, &rhs.pNext, sizeof( HeadlessSurfaceCreateInfoEXT ) - offsetof( HeadlessSurfaceCreateInfoEXT, pNext ) );
43034       return *this;
43035     }
43036 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43037     HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43038     {
43039       *this = rhs;
43040     }
43041 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43042     HeadlessSurfaceCreateInfoEXT& operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43043     {
43044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>(&rhs);
43045       return *this;
43046     }
43047 
setPNextVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43048     HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43049     {
43050       pNext = pNext_;
43051       return *this;
43052     }
43053 
setFlagsVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43054     HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
43055     {
43056       flags = flags_;
43057       return *this;
43058     }
43059 
43060 
operator VkHeadlessSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43061     operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
43062     {
43063       return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
43064     }
43065 
operator VkHeadlessSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43066     operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
43067     {
43068       return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
43069     }
43070 
43071 
43072 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43073     auto operator<=>( HeadlessSurfaceCreateInfoEXT const& ) const = default;
43074 #else
operator ==VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43075     bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43076     {
43077       return ( sType == rhs.sType )
43078           && ( pNext == rhs.pNext )
43079           && ( flags == rhs.flags );
43080     }
43081 
operator !=VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT43082     bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43083     {
43084       return !operator==( rhs );
43085     }
43086 #endif
43087 
43088 
43089 
43090   public:
43091     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
43092     const void* pNext = {};
43093     VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
43094 
43095   };
43096   static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
43097   static_assert( std::is_standard_layout<HeadlessSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
43098 
43099   template <>
43100   struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
43101   {
43102     using Type = HeadlessSurfaceCreateInfoEXT;
43103   };
43104 
43105 #ifdef VK_USE_PLATFORM_IOS_MVK
43106   struct IOSSurfaceCreateInfoMVK
43107   {
43108     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
43109 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43110     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {},
43111                                                   const void* pView_ = {} ) VULKAN_HPP_NOEXCEPT
43112       : flags( flags_ )
43113       , pView( pView_ )
43114     {}
43115 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43116     IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
43117     {
43118       memcpy( &pNext, &rhs.pNext, sizeof( IOSSurfaceCreateInfoMVK ) - offsetof( IOSSurfaceCreateInfoMVK, pNext ) );
43119       return *this;
43120     }
43121 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43122     IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
43123     {
43124       *this = rhs;
43125     }
43126 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43127     IOSSurfaceCreateInfoMVK& operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
43128     {
43129       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>(&rhs);
43130       return *this;
43131     }
43132 
setPNextVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43133     IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43134     {
43135       pNext = pNext_;
43136       return *this;
43137     }
43138 
setFlagsVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43139     IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
43140     {
43141       flags = flags_;
43142       return *this;
43143     }
43144 
setPViewVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43145     IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
43146     {
43147       pView = pView_;
43148       return *this;
43149     }
43150 
43151 
operator VkIOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43152     operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
43153     {
43154       return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
43155     }
43156 
operator VkIOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43157     operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
43158     {
43159       return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
43160     }
43161 
43162 
43163 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43164     auto operator<=>( IOSSurfaceCreateInfoMVK const& ) const = default;
43165 #else
operator ==VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43166     bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
43167     {
43168       return ( sType == rhs.sType )
43169           && ( pNext == rhs.pNext )
43170           && ( flags == rhs.flags )
43171           && ( pView == rhs.pView );
43172     }
43173 
operator !=VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK43174     bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
43175     {
43176       return !operator==( rhs );
43177     }
43178 #endif
43179 
43180 
43181 
43182   public:
43183     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
43184     const void* pNext = {};
43185     VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
43186     const void* pView = {};
43187 
43188   };
43189   static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
43190   static_assert( std::is_standard_layout<IOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
43191 
43192   template <>
43193   struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
43194   {
43195     using Type = IOSSurfaceCreateInfoMVK;
43196   };
43197 #endif /*VK_USE_PLATFORM_IOS_MVK*/
43198 
43199   struct ImageBlit
43200   {
43201 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit43202     VULKAN_HPP_CONSTEXPR_14 ImageBlit( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
43203                                        std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const& srcOffsets_ = {},
43204                                        VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
43205                                        std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const& dstOffsets_ = {} ) VULKAN_HPP_NOEXCEPT
43206       : srcSubresource( srcSubresource_ )
43207       , srcOffsets( srcOffsets_ )
43208       , dstSubresource( dstSubresource_ )
43209       , dstOffsets( dstOffsets_ )
43210     {}
43211 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit43212     ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
43213     {
43214       *this = rhs;
43215     }
43216 
operator =VULKAN_HPP_NAMESPACE::ImageBlit43217     ImageBlit& operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
43218     {
43219       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>(&rhs);
43220       return *this;
43221     }
43222 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit43223     ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
43224     {
43225       srcSubresource = srcSubresource_;
43226       return *this;
43227     }
43228 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit43229     ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
43230     {
43231       srcOffsets = srcOffsets_;
43232       return *this;
43233     }
43234 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit43235     ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
43236     {
43237       dstSubresource = dstSubresource_;
43238       return *this;
43239     }
43240 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit43241     ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
43242     {
43243       dstOffsets = dstOffsets_;
43244       return *this;
43245     }
43246 
43247 
operator VkImageBlit const&VULKAN_HPP_NAMESPACE::ImageBlit43248     operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT
43249     {
43250       return *reinterpret_cast<const VkImageBlit*>( this );
43251     }
43252 
operator VkImageBlit&VULKAN_HPP_NAMESPACE::ImageBlit43253     operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
43254     {
43255       return *reinterpret_cast<VkImageBlit*>( this );
43256     }
43257 
43258 
43259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43260     auto operator<=>( ImageBlit const& ) const = default;
43261 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit43262     bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
43263     {
43264       return ( srcSubresource == rhs.srcSubresource )
43265           && ( srcOffsets == rhs.srcOffsets )
43266           && ( dstSubresource == rhs.dstSubresource )
43267           && ( dstOffsets == rhs.dstOffsets );
43268     }
43269 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit43270     bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
43271     {
43272       return !operator==( rhs );
43273     }
43274 #endif
43275 
43276 
43277 
43278   public:
43279     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
43280     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
43281     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
43282     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
43283 
43284   };
43285   static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" );
43286   static_assert( std::is_standard_layout<ImageBlit>::value, "struct wrapper is not a standard layout!" );
43287 
43288   struct ImageCopy
43289   {
43290 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy43291     VULKAN_HPP_CONSTEXPR ImageCopy( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
43292                                     VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
43293                                     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
43294                                     VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
43295                                     VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
43296       : srcSubresource( srcSubresource_ )
43297       , srcOffset( srcOffset_ )
43298       , dstSubresource( dstSubresource_ )
43299       , dstOffset( dstOffset_ )
43300       , extent( extent_ )
43301     {}
43302 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy43303     ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
43304     {
43305       *this = rhs;
43306     }
43307 
operator =VULKAN_HPP_NAMESPACE::ImageCopy43308     ImageCopy& operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
43309     {
43310       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>(&rhs);
43311       return *this;
43312     }
43313 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy43314     ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
43315     {
43316       srcSubresource = srcSubresource_;
43317       return *this;
43318     }
43319 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy43320     ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
43321     {
43322       srcOffset = srcOffset_;
43323       return *this;
43324     }
43325 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy43326     ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
43327     {
43328       dstSubresource = dstSubresource_;
43329       return *this;
43330     }
43331 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy43332     ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
43333     {
43334       dstOffset = dstOffset_;
43335       return *this;
43336     }
43337 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy43338     ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
43339     {
43340       extent = extent_;
43341       return *this;
43342     }
43343 
43344 
operator VkImageCopy const&VULKAN_HPP_NAMESPACE::ImageCopy43345     operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT
43346     {
43347       return *reinterpret_cast<const VkImageCopy*>( this );
43348     }
43349 
operator VkImageCopy&VULKAN_HPP_NAMESPACE::ImageCopy43350     operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
43351     {
43352       return *reinterpret_cast<VkImageCopy*>( this );
43353     }
43354 
43355 
43356 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43357     auto operator<=>( ImageCopy const& ) const = default;
43358 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy43359     bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
43360     {
43361       return ( srcSubresource == rhs.srcSubresource )
43362           && ( srcOffset == rhs.srcOffset )
43363           && ( dstSubresource == rhs.dstSubresource )
43364           && ( dstOffset == rhs.dstOffset )
43365           && ( extent == rhs.extent );
43366     }
43367 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy43368     bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
43369     {
43370       return !operator==( rhs );
43371     }
43372 #endif
43373 
43374 
43375 
43376   public:
43377     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
43378     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
43379     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
43380     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
43381     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
43382 
43383   };
43384   static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" );
43385   static_assert( std::is_standard_layout<ImageCopy>::value, "struct wrapper is not a standard layout!" );
43386 
43387   struct ImageCreateInfo
43388   {
43389     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
43390 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo43391     VULKAN_HPP_CONSTEXPR ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
43392                                           VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
43393                                           VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
43394                                           VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
43395                                           uint32_t mipLevels_ = {},
43396                                           uint32_t arrayLayers_ = {},
43397                                           VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
43398                                           VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
43399                                           VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
43400                                           VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
43401                                           uint32_t queueFamilyIndexCount_ = {},
43402                                           const uint32_t* pQueueFamilyIndices_ = {},
43403                                           VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
43404       : flags( flags_ )
43405       , imageType( imageType_ )
43406       , format( format_ )
43407       , extent( extent_ )
43408       , mipLevels( mipLevels_ )
43409       , arrayLayers( arrayLayers_ )
43410       , samples( samples_ )
43411       , tiling( tiling_ )
43412       , usage( usage_ )
43413       , sharingMode( sharingMode_ )
43414       , queueFamilyIndexCount( queueFamilyIndexCount_ )
43415       , pQueueFamilyIndices( pQueueFamilyIndices_ )
43416       , initialLayout( initialLayout_ )
43417     {}
43418 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo43419     ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43420     {
43421       memcpy( &pNext, &rhs.pNext, sizeof( ImageCreateInfo ) - offsetof( ImageCreateInfo, pNext ) );
43422       return *this;
43423     }
43424 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo43425     ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43426     {
43427       *this = rhs;
43428     }
43429 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo43430     ImageCreateInfo& operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43431     {
43432       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>(&rhs);
43433       return *this;
43434     }
43435 
setPNextVULKAN_HPP_NAMESPACE::ImageCreateInfo43436     ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43437     {
43438       pNext = pNext_;
43439       return *this;
43440     }
43441 
setFlagsVULKAN_HPP_NAMESPACE::ImageCreateInfo43442     ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
43443     {
43444       flags = flags_;
43445       return *this;
43446     }
43447 
setImageTypeVULKAN_HPP_NAMESPACE::ImageCreateInfo43448     ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
43449     {
43450       imageType = imageType_;
43451       return *this;
43452     }
43453 
setFormatVULKAN_HPP_NAMESPACE::ImageCreateInfo43454     ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
43455     {
43456       format = format_;
43457       return *this;
43458     }
43459 
setExtentVULKAN_HPP_NAMESPACE::ImageCreateInfo43460     ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
43461     {
43462       extent = extent_;
43463       return *this;
43464     }
43465 
setMipLevelsVULKAN_HPP_NAMESPACE::ImageCreateInfo43466     ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
43467     {
43468       mipLevels = mipLevels_;
43469       return *this;
43470     }
43471 
setArrayLayersVULKAN_HPP_NAMESPACE::ImageCreateInfo43472     ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
43473     {
43474       arrayLayers = arrayLayers_;
43475       return *this;
43476     }
43477 
setSamplesVULKAN_HPP_NAMESPACE::ImageCreateInfo43478     ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
43479     {
43480       samples = samples_;
43481       return *this;
43482     }
43483 
setTilingVULKAN_HPP_NAMESPACE::ImageCreateInfo43484     ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
43485     {
43486       tiling = tiling_;
43487       return *this;
43488     }
43489 
setUsageVULKAN_HPP_NAMESPACE::ImageCreateInfo43490     ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
43491     {
43492       usage = usage_;
43493       return *this;
43494     }
43495 
setSharingModeVULKAN_HPP_NAMESPACE::ImageCreateInfo43496     ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
43497     {
43498       sharingMode = sharingMode_;
43499       return *this;
43500     }
43501 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::ImageCreateInfo43502     ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
43503     {
43504       queueFamilyIndexCount = queueFamilyIndexCount_;
43505       return *this;
43506     }
43507 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo43508     ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
43509     {
43510       pQueueFamilyIndices = pQueueFamilyIndices_;
43511       return *this;
43512     }
43513 
setInitialLayoutVULKAN_HPP_NAMESPACE::ImageCreateInfo43514     ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
43515     {
43516       initialLayout = initialLayout_;
43517       return *this;
43518     }
43519 
43520 
operator VkImageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageCreateInfo43521     operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
43522     {
43523       return *reinterpret_cast<const VkImageCreateInfo*>( this );
43524     }
43525 
operator VkImageCreateInfo&VULKAN_HPP_NAMESPACE::ImageCreateInfo43526     operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
43527     {
43528       return *reinterpret_cast<VkImageCreateInfo*>( this );
43529     }
43530 
43531 
43532 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43533     auto operator<=>( ImageCreateInfo const& ) const = default;
43534 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCreateInfo43535     bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43536     {
43537       return ( sType == rhs.sType )
43538           && ( pNext == rhs.pNext )
43539           && ( flags == rhs.flags )
43540           && ( imageType == rhs.imageType )
43541           && ( format == rhs.format )
43542           && ( extent == rhs.extent )
43543           && ( mipLevels == rhs.mipLevels )
43544           && ( arrayLayers == rhs.arrayLayers )
43545           && ( samples == rhs.samples )
43546           && ( tiling == rhs.tiling )
43547           && ( usage == rhs.usage )
43548           && ( sharingMode == rhs.sharingMode )
43549           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
43550           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
43551           && ( initialLayout == rhs.initialLayout );
43552     }
43553 
operator !=VULKAN_HPP_NAMESPACE::ImageCreateInfo43554     bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43555     {
43556       return !operator==( rhs );
43557     }
43558 #endif
43559 
43560 
43561 
43562   public:
43563     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
43564     const void* pNext = {};
43565     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
43566     VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
43567     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
43568     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
43569     uint32_t mipLevels = {};
43570     uint32_t arrayLayers = {};
43571     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
43572     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
43573     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
43574     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
43575     uint32_t queueFamilyIndexCount = {};
43576     const uint32_t* pQueueFamilyIndices = {};
43577     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
43578 
43579   };
43580   static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
43581   static_assert( std::is_standard_layout<ImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
43582 
43583   template <>
43584   struct CppType<StructureType, StructureType::eImageCreateInfo>
43585   {
43586     using Type = ImageCreateInfo;
43587   };
43588 
43589   struct SubresourceLayout
43590   {
43591 
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout43592     VULKAN_HPP_CONSTEXPR SubresourceLayout( VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
43593                                             VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
43594                                             VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {},
43595                                             VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {},
43596                                             VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {} ) VULKAN_HPP_NOEXCEPT
43597       : offset( offset_ )
43598       , size( size_ )
43599       , rowPitch( rowPitch_ )
43600       , arrayPitch( arrayPitch_ )
43601       , depthPitch( depthPitch_ )
43602     {}
43603 
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout43604     SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
43605     {
43606       *this = rhs;
43607     }
43608 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout43609     SubresourceLayout& operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
43610     {
43611       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>(&rhs);
43612       return *this;
43613     }
43614 
43615 
operator VkSubresourceLayout const&VULKAN_HPP_NAMESPACE::SubresourceLayout43616     operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT
43617     {
43618       return *reinterpret_cast<const VkSubresourceLayout*>( this );
43619     }
43620 
operator VkSubresourceLayout&VULKAN_HPP_NAMESPACE::SubresourceLayout43621     operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
43622     {
43623       return *reinterpret_cast<VkSubresourceLayout*>( this );
43624     }
43625 
43626 
43627 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43628     auto operator<=>( SubresourceLayout const& ) const = default;
43629 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout43630     bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
43631     {
43632       return ( offset == rhs.offset )
43633           && ( size == rhs.size )
43634           && ( rowPitch == rhs.rowPitch )
43635           && ( arrayPitch == rhs.arrayPitch )
43636           && ( depthPitch == rhs.depthPitch );
43637     }
43638 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout43639     bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
43640     {
43641       return !operator==( rhs );
43642     }
43643 #endif
43644 
43645 
43646 
43647   public:
43648     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
43649     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
43650     VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
43651     VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
43652     VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
43653 
43654   };
43655   static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" );
43656   static_assert( std::is_standard_layout<SubresourceLayout>::value, "struct wrapper is not a standard layout!" );
43657 
43658   struct ImageDrmFormatModifierExplicitCreateInfoEXT
43659   {
43660     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
43661 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43662     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_ = {},
43663                                                                       uint32_t drmFormatModifierPlaneCount_ = {},
43664                                                                       const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {} ) VULKAN_HPP_NOEXCEPT
43665       : drmFormatModifier( drmFormatModifier_ )
43666       , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
43667       , pPlaneLayouts( pPlaneLayouts_ )
43668     {}
43669 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43670     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43671     {
43672       memcpy( &pNext, &rhs.pNext, sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) - offsetof( ImageDrmFormatModifierExplicitCreateInfoEXT, pNext ) );
43673       return *this;
43674     }
43675 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43676     ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43677     {
43678       *this = rhs;
43679     }
43680 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43681     ImageDrmFormatModifierExplicitCreateInfoEXT& operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43682     {
43683       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>(&rhs);
43684       return *this;
43685     }
43686 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43687     ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43688     {
43689       pNext = pNext_;
43690       return *this;
43691     }
43692 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43693     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
43694     {
43695       drmFormatModifier = drmFormatModifier_;
43696       return *this;
43697     }
43698 
setDrmFormatModifierPlaneCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43699     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
43700     {
43701       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
43702       return *this;
43703     }
43704 
setPPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43705     ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
43706     {
43707       pPlaneLayouts = pPlaneLayouts_;
43708       return *this;
43709     }
43710 
43711 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43712     operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
43713     {
43714       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
43715     }
43716 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43717     operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
43718     {
43719       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
43720     }
43721 
43722 
43723 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43724     auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const& ) const = default;
43725 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43726     bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43727     {
43728       return ( sType == rhs.sType )
43729           && ( pNext == rhs.pNext )
43730           && ( drmFormatModifier == rhs.drmFormatModifier )
43731           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
43732           && ( pPlaneLayouts == rhs.pPlaneLayouts );
43733     }
43734 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT43735     bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43736     {
43737       return !operator==( rhs );
43738     }
43739 #endif
43740 
43741 
43742 
43743   public:
43744     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
43745     const void* pNext = {};
43746     uint64_t drmFormatModifier = {};
43747     uint32_t drmFormatModifierPlaneCount = {};
43748     const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {};
43749 
43750   };
43751   static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" );
43752   static_assert( std::is_standard_layout<ImageDrmFormatModifierExplicitCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
43753 
43754   template <>
43755   struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
43756   {
43757     using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
43758   };
43759 
43760   struct ImageDrmFormatModifierListCreateInfoEXT
43761   {
43762     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
43763 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43764     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = {},
43765                                                                   const uint64_t* pDrmFormatModifiers_ = {} ) VULKAN_HPP_NOEXCEPT
43766       : drmFormatModifierCount( drmFormatModifierCount_ )
43767       , pDrmFormatModifiers( pDrmFormatModifiers_ )
43768     {}
43769 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43770     ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43771     {
43772       memcpy( &pNext, &rhs.pNext, sizeof( ImageDrmFormatModifierListCreateInfoEXT ) - offsetof( ImageDrmFormatModifierListCreateInfoEXT, pNext ) );
43773       return *this;
43774     }
43775 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43776     ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43777     {
43778       *this = rhs;
43779     }
43780 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43781     ImageDrmFormatModifierListCreateInfoEXT& operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43782     {
43783       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>(&rhs);
43784       return *this;
43785     }
43786 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43787     ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43788     {
43789       pNext = pNext_;
43790       return *this;
43791     }
43792 
setDrmFormatModifierCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43793     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
43794     {
43795       drmFormatModifierCount = drmFormatModifierCount_;
43796       return *this;
43797     }
43798 
setPDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43799     ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
43800     {
43801       pDrmFormatModifiers = pDrmFormatModifiers_;
43802       return *this;
43803     }
43804 
43805 
operator VkImageDrmFormatModifierListCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43806     operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
43807     {
43808       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
43809     }
43810 
operator VkImageDrmFormatModifierListCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43811     operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
43812     {
43813       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
43814     }
43815 
43816 
43817 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43818     auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const& ) const = default;
43819 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43820     bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43821     {
43822       return ( sType == rhs.sType )
43823           && ( pNext == rhs.pNext )
43824           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
43825           && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
43826     }
43827 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT43828     bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43829     {
43830       return !operator==( rhs );
43831     }
43832 #endif
43833 
43834 
43835 
43836   public:
43837     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
43838     const void* pNext = {};
43839     uint32_t drmFormatModifierCount = {};
43840     const uint64_t* pDrmFormatModifiers = {};
43841 
43842   };
43843   static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" );
43844   static_assert( std::is_standard_layout<ImageDrmFormatModifierListCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
43845 
43846   template <>
43847   struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
43848   {
43849     using Type = ImageDrmFormatModifierListCreateInfoEXT;
43850   };
43851 
43852   struct ImageDrmFormatModifierPropertiesEXT
43853   {
43854     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
43855 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43856     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {} ) VULKAN_HPP_NOEXCEPT
43857       : drmFormatModifier( drmFormatModifier_ )
43858     {}
43859 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43860     ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43861     {
43862       memcpy( &pNext, &rhs.pNext, sizeof( ImageDrmFormatModifierPropertiesEXT ) - offsetof( ImageDrmFormatModifierPropertiesEXT, pNext ) );
43863       return *this;
43864     }
43865 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43866     ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43867     {
43868       *this = rhs;
43869     }
43870 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43871     ImageDrmFormatModifierPropertiesEXT& operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43872     {
43873       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>(&rhs);
43874       return *this;
43875     }
43876 
43877 
operator VkImageDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43878     operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
43879     {
43880       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
43881     }
43882 
operator VkImageDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43883     operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
43884     {
43885       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
43886     }
43887 
43888 
43889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43890     auto operator<=>( ImageDrmFormatModifierPropertiesEXT const& ) const = default;
43891 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43892     bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43893     {
43894       return ( sType == rhs.sType )
43895           && ( pNext == rhs.pNext )
43896           && ( drmFormatModifier == rhs.drmFormatModifier );
43897     }
43898 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT43899     bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43900     {
43901       return !operator==( rhs );
43902     }
43903 #endif
43904 
43905 
43906 
43907   public:
43908     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
43909     void* pNext = {};
43910     uint64_t drmFormatModifier = {};
43911 
43912   };
43913   static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
43914   static_assert( std::is_standard_layout<ImageDrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
43915 
43916   template <>
43917   struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
43918   {
43919     using Type = ImageDrmFormatModifierPropertiesEXT;
43920   };
43921 
43922   struct ImageFormatListCreateInfo
43923   {
43924     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
43925 
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43926     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( uint32_t viewFormatCount_ = {},
43927                                                     const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {} ) VULKAN_HPP_NOEXCEPT
43928       : viewFormatCount( viewFormatCount_ )
43929       , pViewFormats( pViewFormats_ )
43930     {}
43931 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43932     ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43933     {
43934       memcpy( &pNext, &rhs.pNext, sizeof( ImageFormatListCreateInfo ) - offsetof( ImageFormatListCreateInfo, pNext ) );
43935       return *this;
43936     }
43937 
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43938     ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43939     {
43940       *this = rhs;
43941     }
43942 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43943     ImageFormatListCreateInfo& operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43944     {
43945       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>(&rhs);
43946       return *this;
43947     }
43948 
setPNextVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43949     ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43950     {
43951       pNext = pNext_;
43952       return *this;
43953     }
43954 
setViewFormatCountVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43955     ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
43956     {
43957       viewFormatCount = viewFormatCount_;
43958       return *this;
43959     }
43960 
setPViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43961     ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
43962     {
43963       pViewFormats = pViewFormats_;
43964       return *this;
43965     }
43966 
43967 
operator VkImageFormatListCreateInfo const&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43968     operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT
43969     {
43970       return *reinterpret_cast<const VkImageFormatListCreateInfo*>( this );
43971     }
43972 
operator VkImageFormatListCreateInfo&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43973     operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
43974     {
43975       return *reinterpret_cast<VkImageFormatListCreateInfo*>( this );
43976     }
43977 
43978 
43979 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43980     auto operator<=>( ImageFormatListCreateInfo const& ) const = default;
43981 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43982     bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43983     {
43984       return ( sType == rhs.sType )
43985           && ( pNext == rhs.pNext )
43986           && ( viewFormatCount == rhs.viewFormatCount )
43987           && ( pViewFormats == rhs.pViewFormats );
43988     }
43989 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo43990     bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43991     {
43992       return !operator==( rhs );
43993     }
43994 #endif
43995 
43996 
43997 
43998   public:
43999     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
44000     const void* pNext = {};
44001     uint32_t viewFormatCount = {};
44002     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
44003 
44004   };
44005   static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" );
44006   static_assert( std::is_standard_layout<ImageFormatListCreateInfo>::value, "struct wrapper is not a standard layout!" );
44007 
44008   template <>
44009   struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
44010   {
44011     using Type = ImageFormatListCreateInfo;
44012   };
44013 
44014   struct ImageFormatProperties2
44015   {
44016     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
44017 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties244018     VULKAN_HPP_CONSTEXPR ImageFormatProperties2( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {} ) VULKAN_HPP_NOEXCEPT
44019       : imageFormatProperties( imageFormatProperties_ )
44020     {}
44021 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties244022     ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
44023     {
44024       memcpy( &pNext, &rhs.pNext, sizeof( ImageFormatProperties2 ) - offsetof( ImageFormatProperties2, pNext ) );
44025       return *this;
44026     }
44027 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties244028     ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
44029     {
44030       *this = rhs;
44031     }
44032 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties244033     ImageFormatProperties2& operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
44034     {
44035       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>(&rhs);
44036       return *this;
44037     }
44038 
44039 
operator VkImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::ImageFormatProperties244040     operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
44041     {
44042       return *reinterpret_cast<const VkImageFormatProperties2*>( this );
44043     }
44044 
operator VkImageFormatProperties2&VULKAN_HPP_NAMESPACE::ImageFormatProperties244045     operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
44046     {
44047       return *reinterpret_cast<VkImageFormatProperties2*>( this );
44048     }
44049 
44050 
44051 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44052     auto operator<=>( ImageFormatProperties2 const& ) const = default;
44053 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties244054     bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44055     {
44056       return ( sType == rhs.sType )
44057           && ( pNext == rhs.pNext )
44058           && ( imageFormatProperties == rhs.imageFormatProperties );
44059     }
44060 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties244061     bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44062     {
44063       return !operator==( rhs );
44064     }
44065 #endif
44066 
44067 
44068 
44069   public:
44070     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
44071     void* pNext = {};
44072     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
44073 
44074   };
44075   static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" );
44076   static_assert( std::is_standard_layout<ImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
44077 
44078   template <>
44079   struct CppType<StructureType, StructureType::eImageFormatProperties2>
44080   {
44081     using Type = ImageFormatProperties2;
44082   };
44083 
44084   struct ImageSubresourceRange
44085   {
44086 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange44087     VULKAN_HPP_CONSTEXPR ImageSubresourceRange( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
44088                                                 uint32_t baseMipLevel_ = {},
44089                                                 uint32_t levelCount_ = {},
44090                                                 uint32_t baseArrayLayer_ = {},
44091                                                 uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
44092       : aspectMask( aspectMask_ )
44093       , baseMipLevel( baseMipLevel_ )
44094       , levelCount( levelCount_ )
44095       , baseArrayLayer( baseArrayLayer_ )
44096       , layerCount( layerCount_ )
44097     {}
44098 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange44099     ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
44100     {
44101       *this = rhs;
44102     }
44103 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange44104     ImageSubresourceRange& operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
44105     {
44106       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>(&rhs);
44107       return *this;
44108     }
44109 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceRange44110     ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
44111     {
44112       aspectMask = aspectMask_;
44113       return *this;
44114     }
44115 
setBaseMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceRange44116     ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
44117     {
44118       baseMipLevel = baseMipLevel_;
44119       return *this;
44120     }
44121 
setLevelCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange44122     ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
44123     {
44124       levelCount = levelCount_;
44125       return *this;
44126     }
44127 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceRange44128     ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
44129     {
44130       baseArrayLayer = baseArrayLayer_;
44131       return *this;
44132     }
44133 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange44134     ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
44135     {
44136       layerCount = layerCount_;
44137       return *this;
44138     }
44139 
44140 
operator VkImageSubresourceRange const&VULKAN_HPP_NAMESPACE::ImageSubresourceRange44141     operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT
44142     {
44143       return *reinterpret_cast<const VkImageSubresourceRange*>( this );
44144     }
44145 
operator VkImageSubresourceRange&VULKAN_HPP_NAMESPACE::ImageSubresourceRange44146     operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
44147     {
44148       return *reinterpret_cast<VkImageSubresourceRange*>( this );
44149     }
44150 
44151 
44152 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44153     auto operator<=>( ImageSubresourceRange const& ) const = default;
44154 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceRange44155     bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
44156     {
44157       return ( aspectMask == rhs.aspectMask )
44158           && ( baseMipLevel == rhs.baseMipLevel )
44159           && ( levelCount == rhs.levelCount )
44160           && ( baseArrayLayer == rhs.baseArrayLayer )
44161           && ( layerCount == rhs.layerCount );
44162     }
44163 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceRange44164     bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
44165     {
44166       return !operator==( rhs );
44167     }
44168 #endif
44169 
44170 
44171 
44172   public:
44173     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
44174     uint32_t baseMipLevel = {};
44175     uint32_t levelCount = {};
44176     uint32_t baseArrayLayer = {};
44177     uint32_t layerCount = {};
44178 
44179   };
44180   static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" );
44181   static_assert( std::is_standard_layout<ImageSubresourceRange>::value, "struct wrapper is not a standard layout!" );
44182 
44183   struct ImageMemoryBarrier
44184   {
44185     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
44186 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44187     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
44188                                              VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
44189                                              VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
44190                                              VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
44191                                              uint32_t srcQueueFamilyIndex_ = {},
44192                                              uint32_t dstQueueFamilyIndex_ = {},
44193                                              VULKAN_HPP_NAMESPACE::Image image_ = {},
44194                                              VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {} ) VULKAN_HPP_NOEXCEPT
44195       : srcAccessMask( srcAccessMask_ )
44196       , dstAccessMask( dstAccessMask_ )
44197       , oldLayout( oldLayout_ )
44198       , newLayout( newLayout_ )
44199       , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
44200       , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
44201       , image( image_ )
44202       , subresourceRange( subresourceRange_ )
44203     {}
44204 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier44205     ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
44206     {
44207       memcpy( &pNext, &rhs.pNext, sizeof( ImageMemoryBarrier ) - offsetof( ImageMemoryBarrier, pNext ) );
44208       return *this;
44209     }
44210 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44211     ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
44212     {
44213       *this = rhs;
44214     }
44215 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier44216     ImageMemoryBarrier& operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
44217     {
44218       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>(&rhs);
44219       return *this;
44220     }
44221 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44222     ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44223     {
44224       pNext = pNext_;
44225       return *this;
44226     }
44227 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44228     ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
44229     {
44230       srcAccessMask = srcAccessMask_;
44231       return *this;
44232     }
44233 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44234     ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
44235     {
44236       dstAccessMask = dstAccessMask_;
44237       return *this;
44238     }
44239 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44240     ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
44241     {
44242       oldLayout = oldLayout_;
44243       return *this;
44244     }
44245 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44246     ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
44247     {
44248       newLayout = newLayout_;
44249       return *this;
44250     }
44251 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44252     ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
44253     {
44254       srcQueueFamilyIndex = srcQueueFamilyIndex_;
44255       return *this;
44256     }
44257 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44258     ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
44259     {
44260       dstQueueFamilyIndex = dstQueueFamilyIndex_;
44261       return *this;
44262     }
44263 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44264     ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44265     {
44266       image = image_;
44267       return *this;
44268     }
44269 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier44270     ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
44271     {
44272       subresourceRange = subresourceRange_;
44273       return *this;
44274     }
44275 
44276 
operator VkImageMemoryBarrier const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier44277     operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
44278     {
44279       return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
44280     }
44281 
operator VkImageMemoryBarrier&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier44282     operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
44283     {
44284       return *reinterpret_cast<VkImageMemoryBarrier*>( this );
44285     }
44286 
44287 
44288 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44289     auto operator<=>( ImageMemoryBarrier const& ) const = default;
44290 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier44291     bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
44292     {
44293       return ( sType == rhs.sType )
44294           && ( pNext == rhs.pNext )
44295           && ( srcAccessMask == rhs.srcAccessMask )
44296           && ( dstAccessMask == rhs.dstAccessMask )
44297           && ( oldLayout == rhs.oldLayout )
44298           && ( newLayout == rhs.newLayout )
44299           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
44300           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
44301           && ( image == rhs.image )
44302           && ( subresourceRange == rhs.subresourceRange );
44303     }
44304 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier44305     bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
44306     {
44307       return !operator==( rhs );
44308     }
44309 #endif
44310 
44311 
44312 
44313   public:
44314     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
44315     const void* pNext = {};
44316     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
44317     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
44318     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
44319     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
44320     uint32_t srcQueueFamilyIndex = {};
44321     uint32_t dstQueueFamilyIndex = {};
44322     VULKAN_HPP_NAMESPACE::Image image = {};
44323     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
44324 
44325   };
44326   static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" );
44327   static_assert( std::is_standard_layout<ImageMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
44328 
44329   template <>
44330   struct CppType<StructureType, StructureType::eImageMemoryBarrier>
44331   {
44332     using Type = ImageMemoryBarrier;
44333   };
44334 
44335   struct ImageMemoryRequirementsInfo2
44336   {
44337     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
44338 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244339     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {} ) VULKAN_HPP_NOEXCEPT
44340       : image( image_ )
44341     {}
44342 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244343     ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44344     {
44345       memcpy( &pNext, &rhs.pNext, sizeof( ImageMemoryRequirementsInfo2 ) - offsetof( ImageMemoryRequirementsInfo2, pNext ) );
44346       return *this;
44347     }
44348 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244349     ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44350     {
44351       *this = rhs;
44352     }
44353 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244354     ImageMemoryRequirementsInfo2& operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44355     {
44356       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>(&rhs);
44357       return *this;
44358     }
44359 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244360     ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44361     {
44362       pNext = pNext_;
44363       return *this;
44364     }
44365 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244366     ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44367     {
44368       image = image_;
44369       return *this;
44370     }
44371 
44372 
operator VkImageMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244373     operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44374     {
44375       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
44376     }
44377 
operator VkImageMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244378     operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44379     {
44380       return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
44381     }
44382 
44383 
44384 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44385     auto operator<=>( ImageMemoryRequirementsInfo2 const& ) const = default;
44386 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244387     bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44388     {
44389       return ( sType == rhs.sType )
44390           && ( pNext == rhs.pNext )
44391           && ( image == rhs.image );
44392     }
44393 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244394     bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44395     {
44396       return !operator==( rhs );
44397     }
44398 #endif
44399 
44400 
44401 
44402   public:
44403     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
44404     const void* pNext = {};
44405     VULKAN_HPP_NAMESPACE::Image image = {};
44406 
44407   };
44408   static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44409   static_assert( std::is_standard_layout<ImageMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44410 
44411   template <>
44412   struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
44413   {
44414     using Type = ImageMemoryRequirementsInfo2;
44415   };
44416 
44417 #ifdef VK_USE_PLATFORM_FUCHSIA
44418   struct ImagePipeSurfaceCreateInfoFUCHSIA
44419   {
44420     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
44421 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44422     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {},
44423                                                             zx_handle_t imagePipeHandle_ = {} ) VULKAN_HPP_NOEXCEPT
44424       : flags( flags_ )
44425       , imagePipeHandle( imagePipeHandle_ )
44426     {}
44427 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44428     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
44429     {
44430       memcpy( &pNext, &rhs.pNext, sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) - offsetof( ImagePipeSurfaceCreateInfoFUCHSIA, pNext ) );
44431       return *this;
44432     }
44433 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44434     ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
44435     {
44436       *this = rhs;
44437     }
44438 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44439     ImagePipeSurfaceCreateInfoFUCHSIA& operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
44440     {
44441       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>(&rhs);
44442       return *this;
44443     }
44444 
setPNextVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44445     ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44446     {
44447       pNext = pNext_;
44448       return *this;
44449     }
44450 
setFlagsVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44451     ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
44452     {
44453       flags = flags_;
44454       return *this;
44455     }
44456 
setImagePipeHandleVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44457     ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
44458     {
44459       imagePipeHandle = imagePipeHandle_;
44460       return *this;
44461     }
44462 
44463 
operator VkImagePipeSurfaceCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44464     operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT
44465     {
44466       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
44467     }
44468 
operator VkImagePipeSurfaceCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44469     operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
44470     {
44471       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
44472     }
44473 
44474 
44475 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44476     auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const& ) const = default;
44477 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44478     bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
44479     {
44480       return ( sType == rhs.sType )
44481           && ( pNext == rhs.pNext )
44482           && ( flags == rhs.flags )
44483           && ( imagePipeHandle == rhs.imagePipeHandle );
44484     }
44485 
operator !=VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA44486     bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
44487     {
44488       return !operator==( rhs );
44489     }
44490 #endif
44491 
44492 
44493 
44494   public:
44495     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
44496     const void* pNext = {};
44497     VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
44498     zx_handle_t imagePipeHandle = {};
44499 
44500   };
44501   static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" );
44502   static_assert( std::is_standard_layout<ImagePipeSurfaceCreateInfoFUCHSIA>::value, "struct wrapper is not a standard layout!" );
44503 
44504   template <>
44505   struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
44506   {
44507     using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
44508   };
44509 #endif /*VK_USE_PLATFORM_FUCHSIA*/
44510 
44511   struct ImagePlaneMemoryRequirementsInfo
44512   {
44513     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
44514 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44515     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor ) VULKAN_HPP_NOEXCEPT
44516       : planeAspect( planeAspect_ )
44517     {}
44518 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44519     ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44520     {
44521       memcpy( &pNext, &rhs.pNext, sizeof( ImagePlaneMemoryRequirementsInfo ) - offsetof( ImagePlaneMemoryRequirementsInfo, pNext ) );
44522       return *this;
44523     }
44524 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44525     ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44526     {
44527       *this = rhs;
44528     }
44529 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44530     ImagePlaneMemoryRequirementsInfo& operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44531     {
44532       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>(&rhs);
44533       return *this;
44534     }
44535 
setPNextVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44536     ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44537     {
44538       pNext = pNext_;
44539       return *this;
44540     }
44541 
setPlaneAspectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44542     ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
44543     {
44544       planeAspect = planeAspect_;
44545       return *this;
44546     }
44547 
44548 
operator VkImagePlaneMemoryRequirementsInfo const&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44549     operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT
44550     {
44551       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
44552     }
44553 
operator VkImagePlaneMemoryRequirementsInfo&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44554     operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
44555     {
44556       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
44557     }
44558 
44559 
44560 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44561     auto operator<=>( ImagePlaneMemoryRequirementsInfo const& ) const = default;
44562 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44563     bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44564     {
44565       return ( sType == rhs.sType )
44566           && ( pNext == rhs.pNext )
44567           && ( planeAspect == rhs.planeAspect );
44568     }
44569 
operator !=VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo44570     bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44571     {
44572       return !operator==( rhs );
44573     }
44574 #endif
44575 
44576 
44577 
44578   public:
44579     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
44580     const void* pNext = {};
44581     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
44582 
44583   };
44584   static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" );
44585   static_assert( std::is_standard_layout<ImagePlaneMemoryRequirementsInfo>::value, "struct wrapper is not a standard layout!" );
44586 
44587   template <>
44588   struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
44589   {
44590     using Type = ImagePlaneMemoryRequirementsInfo;
44591   };
44592 
44593   struct ImageResolve
44594   {
44595 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve44596     VULKAN_HPP_CONSTEXPR ImageResolve( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
44597                                        VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
44598                                        VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
44599                                        VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
44600                                        VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
44601       : srcSubresource( srcSubresource_ )
44602       , srcOffset( srcOffset_ )
44603       , dstSubresource( dstSubresource_ )
44604       , dstOffset( dstOffset_ )
44605       , extent( extent_ )
44606     {}
44607 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve44608     ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
44609     {
44610       *this = rhs;
44611     }
44612 
operator =VULKAN_HPP_NAMESPACE::ImageResolve44613     ImageResolve& operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
44614     {
44615       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>(&rhs);
44616       return *this;
44617     }
44618 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve44619     ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
44620     {
44621       srcSubresource = srcSubresource_;
44622       return *this;
44623     }
44624 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve44625     ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
44626     {
44627       srcOffset = srcOffset_;
44628       return *this;
44629     }
44630 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve44631     ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
44632     {
44633       dstSubresource = dstSubresource_;
44634       return *this;
44635     }
44636 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve44637     ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
44638     {
44639       dstOffset = dstOffset_;
44640       return *this;
44641     }
44642 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve44643     ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
44644     {
44645       extent = extent_;
44646       return *this;
44647     }
44648 
44649 
operator VkImageResolve const&VULKAN_HPP_NAMESPACE::ImageResolve44650     operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT
44651     {
44652       return *reinterpret_cast<const VkImageResolve*>( this );
44653     }
44654 
operator VkImageResolve&VULKAN_HPP_NAMESPACE::ImageResolve44655     operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
44656     {
44657       return *reinterpret_cast<VkImageResolve*>( this );
44658     }
44659 
44660 
44661 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44662     auto operator<=>( ImageResolve const& ) const = default;
44663 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve44664     bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
44665     {
44666       return ( srcSubresource == rhs.srcSubresource )
44667           && ( srcOffset == rhs.srcOffset )
44668           && ( dstSubresource == rhs.dstSubresource )
44669           && ( dstOffset == rhs.dstOffset )
44670           && ( extent == rhs.extent );
44671     }
44672 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve44673     bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
44674     {
44675       return !operator==( rhs );
44676     }
44677 #endif
44678 
44679 
44680 
44681   public:
44682     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
44683     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
44684     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
44685     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
44686     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
44687 
44688   };
44689   static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" );
44690   static_assert( std::is_standard_layout<ImageResolve>::value, "struct wrapper is not a standard layout!" );
44691 
44692   struct ImageSparseMemoryRequirementsInfo2
44693   {
44694     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
44695 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244696     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {} ) VULKAN_HPP_NOEXCEPT
44697       : image( image_ )
44698     {}
44699 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244700     ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44701     {
44702       memcpy( &pNext, &rhs.pNext, sizeof( ImageSparseMemoryRequirementsInfo2 ) - offsetof( ImageSparseMemoryRequirementsInfo2, pNext ) );
44703       return *this;
44704     }
44705 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244706     ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44707     {
44708       *this = rhs;
44709     }
44710 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244711     ImageSparseMemoryRequirementsInfo2& operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44712     {
44713       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>(&rhs);
44714       return *this;
44715     }
44716 
setPNextVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244717     ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44718     {
44719       pNext = pNext_;
44720       return *this;
44721     }
44722 
setImageVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244723     ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44724     {
44725       image = image_;
44726       return *this;
44727     }
44728 
44729 
operator VkImageSparseMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244730     operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44731     {
44732       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
44733     }
44734 
operator VkImageSparseMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244735     operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44736     {
44737       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
44738     }
44739 
44740 
44741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44742     auto operator<=>( ImageSparseMemoryRequirementsInfo2 const& ) const = default;
44743 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244744     bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44745     {
44746       return ( sType == rhs.sType )
44747           && ( pNext == rhs.pNext )
44748           && ( image == rhs.image );
44749     }
44750 
operator !=VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244751     bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44752     {
44753       return !operator==( rhs );
44754     }
44755 #endif
44756 
44757 
44758 
44759   public:
44760     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
44761     const void* pNext = {};
44762     VULKAN_HPP_NAMESPACE::Image image = {};
44763 
44764   };
44765   static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44766   static_assert( std::is_standard_layout<ImageSparseMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44767 
44768   template <>
44769   struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
44770   {
44771     using Type = ImageSparseMemoryRequirementsInfo2;
44772   };
44773 
44774   struct ImageStencilUsageCreateInfo
44775   {
44776     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
44777 
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44778     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {} ) VULKAN_HPP_NOEXCEPT
44779       : stencilUsage( stencilUsage_ )
44780     {}
44781 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44782     ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44783     {
44784       memcpy( &pNext, &rhs.pNext, sizeof( ImageStencilUsageCreateInfo ) - offsetof( ImageStencilUsageCreateInfo, pNext ) );
44785       return *this;
44786     }
44787 
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44788     ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44789     {
44790       *this = rhs;
44791     }
44792 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44793     ImageStencilUsageCreateInfo& operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44794     {
44795       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>(&rhs);
44796       return *this;
44797     }
44798 
setPNextVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44799     ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44800     {
44801       pNext = pNext_;
44802       return *this;
44803     }
44804 
setStencilUsageVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44805     ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
44806     {
44807       stencilUsage = stencilUsage_;
44808       return *this;
44809     }
44810 
44811 
operator VkImageStencilUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44812     operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
44813     {
44814       return *reinterpret_cast<const VkImageStencilUsageCreateInfo*>( this );
44815     }
44816 
operator VkImageStencilUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44817     operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
44818     {
44819       return *reinterpret_cast<VkImageStencilUsageCreateInfo*>( this );
44820     }
44821 
44822 
44823 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44824     auto operator<=>( ImageStencilUsageCreateInfo const& ) const = default;
44825 #else
operator ==VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44826     bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44827     {
44828       return ( sType == rhs.sType )
44829           && ( pNext == rhs.pNext )
44830           && ( stencilUsage == rhs.stencilUsage );
44831     }
44832 
operator !=VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo44833     bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44834     {
44835       return !operator==( rhs );
44836     }
44837 #endif
44838 
44839 
44840 
44841   public:
44842     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
44843     const void* pNext = {};
44844     VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
44845 
44846   };
44847   static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" );
44848   static_assert( std::is_standard_layout<ImageStencilUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
44849 
44850   template <>
44851   struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
44852   {
44853     using Type = ImageStencilUsageCreateInfo;
44854   };
44855 
44856   struct ImageSwapchainCreateInfoKHR
44857   {
44858     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
44859 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44860     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {} ) VULKAN_HPP_NOEXCEPT
44861       : swapchain( swapchain_ )
44862     {}
44863 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44864     ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44865     {
44866       memcpy( &pNext, &rhs.pNext, sizeof( ImageSwapchainCreateInfoKHR ) - offsetof( ImageSwapchainCreateInfoKHR, pNext ) );
44867       return *this;
44868     }
44869 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44870     ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44871     {
44872       *this = rhs;
44873     }
44874 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44875     ImageSwapchainCreateInfoKHR& operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44876     {
44877       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>(&rhs);
44878       return *this;
44879     }
44880 
setPNextVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44881     ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44882     {
44883       pNext = pNext_;
44884       return *this;
44885     }
44886 
setSwapchainVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44887     ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
44888     {
44889       swapchain = swapchain_;
44890       return *this;
44891     }
44892 
44893 
operator VkImageSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44894     operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
44895     {
44896       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
44897     }
44898 
operator VkImageSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44899     operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
44900     {
44901       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
44902     }
44903 
44904 
44905 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44906     auto operator<=>( ImageSwapchainCreateInfoKHR const& ) const = default;
44907 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44908     bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44909     {
44910       return ( sType == rhs.sType )
44911           && ( pNext == rhs.pNext )
44912           && ( swapchain == rhs.swapchain );
44913     }
44914 
operator !=VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR44915     bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44916     {
44917       return !operator==( rhs );
44918     }
44919 #endif
44920 
44921 
44922 
44923   public:
44924     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
44925     const void* pNext = {};
44926     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
44927 
44928   };
44929   static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
44930   static_assert( std::is_standard_layout<ImageSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
44931 
44932   template <>
44933   struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
44934   {
44935     using Type = ImageSwapchainCreateInfoKHR;
44936   };
44937 
44938   struct ImageViewASTCDecodeModeEXT
44939   {
44940     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
44941 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44942     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined ) VULKAN_HPP_NOEXCEPT
44943       : decodeMode( decodeMode_ )
44944     {}
44945 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44946     ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44947     {
44948       memcpy( &pNext, &rhs.pNext, sizeof( ImageViewASTCDecodeModeEXT ) - offsetof( ImageViewASTCDecodeModeEXT, pNext ) );
44949       return *this;
44950     }
44951 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44952     ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44953     {
44954       *this = rhs;
44955     }
44956 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44957     ImageViewASTCDecodeModeEXT& operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44958     {
44959       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>(&rhs);
44960       return *this;
44961     }
44962 
setPNextVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44963     ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44964     {
44965       pNext = pNext_;
44966       return *this;
44967     }
44968 
setDecodeModeVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44969     ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
44970     {
44971       decodeMode = decodeMode_;
44972       return *this;
44973     }
44974 
44975 
operator VkImageViewASTCDecodeModeEXT const&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44976     operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT
44977     {
44978       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
44979     }
44980 
operator VkImageViewASTCDecodeModeEXT&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44981     operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
44982     {
44983       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
44984     }
44985 
44986 
44987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44988     auto operator<=>( ImageViewASTCDecodeModeEXT const& ) const = default;
44989 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44990     bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
44991     {
44992       return ( sType == rhs.sType )
44993           && ( pNext == rhs.pNext )
44994           && ( decodeMode == rhs.decodeMode );
44995     }
44996 
operator !=VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT44997     bool operator!=( ImageViewASTCDecodeModeEXT 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::eImageViewAstcDecodeModeEXT;
45007     const void* pNext = {};
45008     VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
45009 
45010   };
45011   static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" );
45012   static_assert( std::is_standard_layout<ImageViewASTCDecodeModeEXT>::value, "struct wrapper is not a standard layout!" );
45013 
45014   template <>
45015   struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
45016   {
45017     using Type = ImageViewASTCDecodeModeEXT;
45018   };
45019 
45020   struct ImageViewAddressPropertiesNVX
45021   {
45022     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
45023 
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45024     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
45025                                                         VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
45026       : deviceAddress( deviceAddress_ )
45027       , size( size_ )
45028     {}
45029 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45030     ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45031     {
45032       memcpy( &pNext, &rhs.pNext, sizeof( ImageViewAddressPropertiesNVX ) - offsetof( ImageViewAddressPropertiesNVX, pNext ) );
45033       return *this;
45034     }
45035 
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45036     ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45037     {
45038       *this = rhs;
45039     }
45040 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45041     ImageViewAddressPropertiesNVX& operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45042     {
45043       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>(&rhs);
45044       return *this;
45045     }
45046 
45047 
operator VkImageViewAddressPropertiesNVX const&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45048     operator VkImageViewAddressPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
45049     {
45050       return *reinterpret_cast<const VkImageViewAddressPropertiesNVX*>( this );
45051     }
45052 
operator VkImageViewAddressPropertiesNVX&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45053     operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
45054     {
45055       return *reinterpret_cast<VkImageViewAddressPropertiesNVX*>( this );
45056     }
45057 
45058 
45059 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45060     auto operator<=>( ImageViewAddressPropertiesNVX const& ) const = default;
45061 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45062     bool operator==( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45063     {
45064       return ( sType == rhs.sType )
45065           && ( pNext == rhs.pNext )
45066           && ( deviceAddress == rhs.deviceAddress )
45067           && ( size == rhs.size );
45068     }
45069 
operator !=VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45070     bool operator!=( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45071     {
45072       return !operator==( rhs );
45073     }
45074 #endif
45075 
45076 
45077 
45078   public:
45079     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
45080     void* pNext = {};
45081     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
45082     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
45083 
45084   };
45085   static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), "struct and wrapper have different size!" );
45086   static_assert( std::is_standard_layout<ImageViewAddressPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
45087 
45088   template <>
45089   struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
45090   {
45091     using Type = ImageViewAddressPropertiesNVX;
45092   };
45093 
45094   struct ImageViewCreateInfo
45095   {
45096     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
45097 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45098     VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {},
45099                                               VULKAN_HPP_NAMESPACE::Image image_ = {},
45100                                               VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D,
45101                                               VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
45102                                               VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
45103                                               VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {} ) VULKAN_HPP_NOEXCEPT
45104       : flags( flags_ )
45105       , image( image_ )
45106       , viewType( viewType_ )
45107       , format( format_ )
45108       , components( components_ )
45109       , subresourceRange( subresourceRange_ )
45110     {}
45111 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo45112     ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45113     {
45114       memcpy( &pNext, &rhs.pNext, sizeof( ImageViewCreateInfo ) - offsetof( ImageViewCreateInfo, pNext ) );
45115       return *this;
45116     }
45117 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45118     ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45119     {
45120       *this = rhs;
45121     }
45122 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo45123     ImageViewCreateInfo& operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45124     {
45125       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>(&rhs);
45126       return *this;
45127     }
45128 
setPNextVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45129     ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45130     {
45131       pNext = pNext_;
45132       return *this;
45133     }
45134 
setFlagsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45135     ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
45136     {
45137       flags = flags_;
45138       return *this;
45139     }
45140 
setImageVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45141     ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
45142     {
45143       image = image_;
45144       return *this;
45145     }
45146 
setViewTypeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45147     ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
45148     {
45149       viewType = viewType_;
45150       return *this;
45151     }
45152 
setFormatVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45153     ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
45154     {
45155       format = format_;
45156       return *this;
45157     }
45158 
setComponentsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45159     ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
45160     {
45161       components = components_;
45162       return *this;
45163     }
45164 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo45165     ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
45166     {
45167       subresourceRange = subresourceRange_;
45168       return *this;
45169     }
45170 
45171 
operator VkImageViewCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo45172     operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
45173     {
45174       return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
45175     }
45176 
operator VkImageViewCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo45177     operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
45178     {
45179       return *reinterpret_cast<VkImageViewCreateInfo*>( this );
45180     }
45181 
45182 
45183 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45184     auto operator<=>( ImageViewCreateInfo const& ) const = default;
45185 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewCreateInfo45186     bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
45187     {
45188       return ( sType == rhs.sType )
45189           && ( pNext == rhs.pNext )
45190           && ( flags == rhs.flags )
45191           && ( image == rhs.image )
45192           && ( viewType == rhs.viewType )
45193           && ( format == rhs.format )
45194           && ( components == rhs.components )
45195           && ( subresourceRange == rhs.subresourceRange );
45196     }
45197 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCreateInfo45198     bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
45199     {
45200       return !operator==( rhs );
45201     }
45202 #endif
45203 
45204 
45205 
45206   public:
45207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
45208     const void* pNext = {};
45209     VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
45210     VULKAN_HPP_NAMESPACE::Image image = {};
45211     VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
45212     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
45213     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
45214     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
45215 
45216   };
45217   static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
45218   static_assert( std::is_standard_layout<ImageViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
45219 
45220   template <>
45221   struct CppType<StructureType, StructureType::eImageViewCreateInfo>
45222   {
45223     using Type = ImageViewCreateInfo;
45224   };
45225 
45226   struct ImageViewHandleInfoNVX
45227   {
45228     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
45229 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45230     VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
45231                                                  VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
45232                                                  VULKAN_HPP_NAMESPACE::Sampler sampler_ = {} ) VULKAN_HPP_NOEXCEPT
45233       : imageView( imageView_ )
45234       , descriptorType( descriptorType_ )
45235       , sampler( sampler_ )
45236     {}
45237 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45238     ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45239     {
45240       memcpy( &pNext, &rhs.pNext, sizeof( ImageViewHandleInfoNVX ) - offsetof( ImageViewHandleInfoNVX, pNext ) );
45241       return *this;
45242     }
45243 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45244     ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45245     {
45246       *this = rhs;
45247     }
45248 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45249     ImageViewHandleInfoNVX& operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45250     {
45251       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>(&rhs);
45252       return *this;
45253     }
45254 
setPNextVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45255     ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45256     {
45257       pNext = pNext_;
45258       return *this;
45259     }
45260 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45261     ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
45262     {
45263       imageView = imageView_;
45264       return *this;
45265     }
45266 
setDescriptorTypeVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45267     ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
45268     {
45269       descriptorType = descriptorType_;
45270       return *this;
45271     }
45272 
setSamplerVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45273     ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
45274     {
45275       sampler = sampler_;
45276       return *this;
45277     }
45278 
45279 
operator VkImageViewHandleInfoNVX const&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45280     operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT
45281     {
45282       return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
45283     }
45284 
operator VkImageViewHandleInfoNVX&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45285     operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
45286     {
45287       return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
45288     }
45289 
45290 
45291 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45292     auto operator<=>( ImageViewHandleInfoNVX const& ) const = default;
45293 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45294     bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45295     {
45296       return ( sType == rhs.sType )
45297           && ( pNext == rhs.pNext )
45298           && ( imageView == rhs.imageView )
45299           && ( descriptorType == rhs.descriptorType )
45300           && ( sampler == rhs.sampler );
45301     }
45302 
operator !=VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45303     bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45304     {
45305       return !operator==( rhs );
45306     }
45307 #endif
45308 
45309 
45310 
45311   public:
45312     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
45313     const void* pNext = {};
45314     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
45315     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
45316     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
45317 
45318   };
45319   static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" );
45320   static_assert( std::is_standard_layout<ImageViewHandleInfoNVX>::value, "struct wrapper is not a standard layout!" );
45321 
45322   template <>
45323   struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
45324   {
45325     using Type = ImageViewHandleInfoNVX;
45326   };
45327 
45328   struct ImageViewUsageCreateInfo
45329   {
45330     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
45331 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45332     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {} ) VULKAN_HPP_NOEXCEPT
45333       : usage( usage_ )
45334     {}
45335 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45336     ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45337     {
45338       memcpy( &pNext, &rhs.pNext, sizeof( ImageViewUsageCreateInfo ) - offsetof( ImageViewUsageCreateInfo, pNext ) );
45339       return *this;
45340     }
45341 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45342     ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45343     {
45344       *this = rhs;
45345     }
45346 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45347     ImageViewUsageCreateInfo& operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45348     {
45349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>(&rhs);
45350       return *this;
45351     }
45352 
setPNextVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45353     ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45354     {
45355       pNext = pNext_;
45356       return *this;
45357     }
45358 
setUsageVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45359     ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
45360     {
45361       usage = usage_;
45362       return *this;
45363     }
45364 
45365 
operator VkImageViewUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45366     operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
45367     {
45368       return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
45369     }
45370 
operator VkImageViewUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45371     operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
45372     {
45373       return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
45374     }
45375 
45376 
45377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45378     auto operator<=>( ImageViewUsageCreateInfo const& ) const = default;
45379 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45380     bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
45381     {
45382       return ( sType == rhs.sType )
45383           && ( pNext == rhs.pNext )
45384           && ( usage == rhs.usage );
45385     }
45386 
operator !=VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo45387     bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
45388     {
45389       return !operator==( rhs );
45390     }
45391 #endif
45392 
45393 
45394 
45395   public:
45396     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
45397     const void* pNext = {};
45398     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
45399 
45400   };
45401   static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" );
45402   static_assert( std::is_standard_layout<ImageViewUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
45403 
45404   template <>
45405   struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
45406   {
45407     using Type = ImageViewUsageCreateInfo;
45408   };
45409 
45410 #ifdef VK_USE_PLATFORM_ANDROID_KHR
45411   struct ImportAndroidHardwareBufferInfoANDROID
45412   {
45413     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
45414 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45415     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer* buffer_ = {} ) VULKAN_HPP_NOEXCEPT
45416       : buffer( buffer_ )
45417     {}
45418 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45419     ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
45420     {
45421       memcpy( &pNext, &rhs.pNext, sizeof( ImportAndroidHardwareBufferInfoANDROID ) - offsetof( ImportAndroidHardwareBufferInfoANDROID, pNext ) );
45422       return *this;
45423     }
45424 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45425     ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
45426     {
45427       *this = rhs;
45428     }
45429 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45430     ImportAndroidHardwareBufferInfoANDROID& operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
45431     {
45432       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>(&rhs);
45433       return *this;
45434     }
45435 
setPNextVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45436     ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45437     {
45438       pNext = pNext_;
45439       return *this;
45440     }
45441 
setBufferVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45442     ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT
45443     {
45444       buffer = buffer_;
45445       return *this;
45446     }
45447 
45448 
operator VkImportAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45449     operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
45450     {
45451       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
45452     }
45453 
operator VkImportAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45454     operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
45455     {
45456       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
45457     }
45458 
45459 
45460 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45461     auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const& ) const = default;
45462 #else
operator ==VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45463     bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
45464     {
45465       return ( sType == rhs.sType )
45466           && ( pNext == rhs.pNext )
45467           && ( buffer == rhs.buffer );
45468     }
45469 
operator !=VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID45470     bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
45471     {
45472       return !operator==( rhs );
45473     }
45474 #endif
45475 
45476 
45477 
45478   public:
45479     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
45480     const void* pNext = {};
45481     struct AHardwareBuffer* buffer = {};
45482 
45483   };
45484   static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
45485   static_assert( std::is_standard_layout<ImportAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
45486 
45487   template <>
45488   struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
45489   {
45490     using Type = ImportAndroidHardwareBufferInfoANDROID;
45491   };
45492 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
45493 
45494   struct ImportFenceFdInfoKHR
45495   {
45496     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
45497 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45498     VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {},
45499                                                VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {},
45500                                                VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
45501                                                int fd_ = {} ) VULKAN_HPP_NOEXCEPT
45502       : fence( fence_ )
45503       , flags( flags_ )
45504       , handleType( handleType_ )
45505       , fd( fd_ )
45506     {}
45507 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45508     ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45509     {
45510       memcpy( &pNext, &rhs.pNext, sizeof( ImportFenceFdInfoKHR ) - offsetof( ImportFenceFdInfoKHR, pNext ) );
45511       return *this;
45512     }
45513 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45514     ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45515     {
45516       *this = rhs;
45517     }
45518 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45519     ImportFenceFdInfoKHR& operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45520     {
45521       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>(&rhs);
45522       return *this;
45523     }
45524 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45525     ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45526     {
45527       pNext = pNext_;
45528       return *this;
45529     }
45530 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45531     ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
45532     {
45533       fence = fence_;
45534       return *this;
45535     }
45536 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45537     ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
45538     {
45539       flags = flags_;
45540       return *this;
45541     }
45542 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45543     ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45544     {
45545       handleType = handleType_;
45546       return *this;
45547     }
45548 
setFdVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45549     ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
45550     {
45551       fd = fd_;
45552       return *this;
45553     }
45554 
45555 
operator VkImportFenceFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45556     operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45557     {
45558       return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
45559     }
45560 
operator VkImportFenceFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45561     operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
45562     {
45563       return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
45564     }
45565 
45566 
45567 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45568     auto operator<=>( ImportFenceFdInfoKHR const& ) const = default;
45569 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45570     bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45571     {
45572       return ( sType == rhs.sType )
45573           && ( pNext == rhs.pNext )
45574           && ( fence == rhs.fence )
45575           && ( flags == rhs.flags )
45576           && ( handleType == rhs.handleType )
45577           && ( fd == rhs.fd );
45578     }
45579 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR45580     bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45581     {
45582       return !operator==( rhs );
45583     }
45584 #endif
45585 
45586 
45587 
45588   public:
45589     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
45590     const void* pNext = {};
45591     VULKAN_HPP_NAMESPACE::Fence fence = {};
45592     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
45593     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
45594     int fd = {};
45595 
45596   };
45597   static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" );
45598   static_assert( std::is_standard_layout<ImportFenceFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
45599 
45600   template <>
45601   struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
45602   {
45603     using Type = ImportFenceFdInfoKHR;
45604   };
45605 
45606 #ifdef VK_USE_PLATFORM_WIN32_KHR
45607   struct ImportFenceWin32HandleInfoKHR
45608   {
45609     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
45610 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45611     VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {},
45612                                                         VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {},
45613                                                         VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
45614                                                         HANDLE handle_ = {},
45615                                                         LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT
45616       : fence( fence_ )
45617       , flags( flags_ )
45618       , handleType( handleType_ )
45619       , handle( handle_ )
45620       , name( name_ )
45621     {}
45622 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45623     ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45624     {
45625       memcpy( &pNext, &rhs.pNext, sizeof( ImportFenceWin32HandleInfoKHR ) - offsetof( ImportFenceWin32HandleInfoKHR, pNext ) );
45626       return *this;
45627     }
45628 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45629     ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45630     {
45631       *this = rhs;
45632     }
45633 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45634     ImportFenceWin32HandleInfoKHR& operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45635     {
45636       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>(&rhs);
45637       return *this;
45638     }
45639 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45640     ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45641     {
45642       pNext = pNext_;
45643       return *this;
45644     }
45645 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45646     ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
45647     {
45648       fence = fence_;
45649       return *this;
45650     }
45651 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45652     ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
45653     {
45654       flags = flags_;
45655       return *this;
45656     }
45657 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45658     ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45659     {
45660       handleType = handleType_;
45661       return *this;
45662     }
45663 
setHandleVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45664     ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
45665     {
45666       handle = handle_;
45667       return *this;
45668     }
45669 
setNameVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45670     ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
45671     {
45672       name = name_;
45673       return *this;
45674     }
45675 
45676 
operator VkImportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45677     operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45678     {
45679       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
45680     }
45681 
operator VkImportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45682     operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
45683     {
45684       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
45685     }
45686 
45687 
45688 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45689     auto operator<=>( ImportFenceWin32HandleInfoKHR const& ) const = default;
45690 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45691     bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45692     {
45693       return ( sType == rhs.sType )
45694           && ( pNext == rhs.pNext )
45695           && ( fence == rhs.fence )
45696           && ( flags == rhs.flags )
45697           && ( handleType == rhs.handleType )
45698           && ( handle == rhs.handle )
45699           && ( name == rhs.name );
45700     }
45701 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR45702     bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45703     {
45704       return !operator==( rhs );
45705     }
45706 #endif
45707 
45708 
45709 
45710   public:
45711     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
45712     const void* pNext = {};
45713     VULKAN_HPP_NAMESPACE::Fence fence = {};
45714     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
45715     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
45716     HANDLE handle = {};
45717     LPCWSTR name = {};
45718 
45719   };
45720   static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
45721   static_assert( std::is_standard_layout<ImportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
45722 
45723   template <>
45724   struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
45725   {
45726     using Type = ImportFenceWin32HandleInfoKHR;
45727   };
45728 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45729 
45730   struct ImportMemoryFdInfoKHR
45731   {
45732     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
45733 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45734     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
45735                                                 int fd_ = {} ) VULKAN_HPP_NOEXCEPT
45736       : handleType( handleType_ )
45737       , fd( fd_ )
45738     {}
45739 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45740     ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45741     {
45742       memcpy( &pNext, &rhs.pNext, sizeof( ImportMemoryFdInfoKHR ) - offsetof( ImportMemoryFdInfoKHR, pNext ) );
45743       return *this;
45744     }
45745 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45746     ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45747     {
45748       *this = rhs;
45749     }
45750 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45751     ImportMemoryFdInfoKHR& operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45752     {
45753       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>(&rhs);
45754       return *this;
45755     }
45756 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45757     ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45758     {
45759       pNext = pNext_;
45760       return *this;
45761     }
45762 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45763     ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45764     {
45765       handleType = handleType_;
45766       return *this;
45767     }
45768 
setFdVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45769     ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
45770     {
45771       fd = fd_;
45772       return *this;
45773     }
45774 
45775 
operator VkImportMemoryFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45776     operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45777     {
45778       return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
45779     }
45780 
operator VkImportMemoryFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45781     operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
45782     {
45783       return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
45784     }
45785 
45786 
45787 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45788     auto operator<=>( ImportMemoryFdInfoKHR const& ) const = default;
45789 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45790     bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45791     {
45792       return ( sType == rhs.sType )
45793           && ( pNext == rhs.pNext )
45794           && ( handleType == rhs.handleType )
45795           && ( fd == rhs.fd );
45796     }
45797 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR45798     bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45799     {
45800       return !operator==( rhs );
45801     }
45802 #endif
45803 
45804 
45805 
45806   public:
45807     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
45808     const void* pNext = {};
45809     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
45810     int fd = {};
45811 
45812   };
45813   static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" );
45814   static_assert( std::is_standard_layout<ImportMemoryFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
45815 
45816   template <>
45817   struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
45818   {
45819     using Type = ImportMemoryFdInfoKHR;
45820   };
45821 
45822   struct ImportMemoryHostPointerInfoEXT
45823   {
45824     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
45825 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45826     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
45827                                                          void* pHostPointer_ = {} ) VULKAN_HPP_NOEXCEPT
45828       : handleType( handleType_ )
45829       , pHostPointer( pHostPointer_ )
45830     {}
45831 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45832     ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45833     {
45834       memcpy( &pNext, &rhs.pNext, sizeof( ImportMemoryHostPointerInfoEXT ) - offsetof( ImportMemoryHostPointerInfoEXT, pNext ) );
45835       return *this;
45836     }
45837 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45838     ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45839     {
45840       *this = rhs;
45841     }
45842 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45843     ImportMemoryHostPointerInfoEXT& operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45844     {
45845       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>(&rhs);
45846       return *this;
45847     }
45848 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45849     ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45850     {
45851       pNext = pNext_;
45852       return *this;
45853     }
45854 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45855     ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45856     {
45857       handleType = handleType_;
45858       return *this;
45859     }
45860 
setPHostPointerVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45861     ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT
45862     {
45863       pHostPointer = pHostPointer_;
45864       return *this;
45865     }
45866 
45867 
operator VkImportMemoryHostPointerInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45868     operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
45869     {
45870       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
45871     }
45872 
operator VkImportMemoryHostPointerInfoEXT&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45873     operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
45874     {
45875       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
45876     }
45877 
45878 
45879 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45880     auto operator<=>( ImportMemoryHostPointerInfoEXT const& ) const = default;
45881 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45882     bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45883     {
45884       return ( sType == rhs.sType )
45885           && ( pNext == rhs.pNext )
45886           && ( handleType == rhs.handleType )
45887           && ( pHostPointer == rhs.pHostPointer );
45888     }
45889 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT45890     bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45891     {
45892       return !operator==( rhs );
45893     }
45894 #endif
45895 
45896 
45897 
45898   public:
45899     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
45900     const void* pNext = {};
45901     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
45902     void* pHostPointer = {};
45903 
45904   };
45905   static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" );
45906   static_assert( std::is_standard_layout<ImportMemoryHostPointerInfoEXT>::value, "struct wrapper is not a standard layout!" );
45907 
45908   template <>
45909   struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
45910   {
45911     using Type = ImportMemoryHostPointerInfoEXT;
45912   };
45913 
45914 #ifdef VK_USE_PLATFORM_WIN32_KHR
45915   struct ImportMemoryWin32HandleInfoKHR
45916   {
45917     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
45918 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45919     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
45920                                                          HANDLE handle_ = {},
45921                                                          LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT
45922       : handleType( handleType_ )
45923       , handle( handle_ )
45924       , name( name_ )
45925     {}
45926 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45927     ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45928     {
45929       memcpy( &pNext, &rhs.pNext, sizeof( ImportMemoryWin32HandleInfoKHR ) - offsetof( ImportMemoryWin32HandleInfoKHR, pNext ) );
45930       return *this;
45931     }
45932 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45933     ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45934     {
45935       *this = rhs;
45936     }
45937 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45938     ImportMemoryWin32HandleInfoKHR& operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45939     {
45940       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>(&rhs);
45941       return *this;
45942     }
45943 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45944     ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45945     {
45946       pNext = pNext_;
45947       return *this;
45948     }
45949 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45950     ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45951     {
45952       handleType = handleType_;
45953       return *this;
45954     }
45955 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45956     ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
45957     {
45958       handle = handle_;
45959       return *this;
45960     }
45961 
setNameVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45962     ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
45963     {
45964       name = name_;
45965       return *this;
45966     }
45967 
45968 
operator VkImportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45969     operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45970     {
45971       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
45972     }
45973 
operator VkImportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45974     operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
45975     {
45976       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
45977     }
45978 
45979 
45980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45981     auto operator<=>( ImportMemoryWin32HandleInfoKHR const& ) const = default;
45982 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45983     bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45984     {
45985       return ( sType == rhs.sType )
45986           && ( pNext == rhs.pNext )
45987           && ( handleType == rhs.handleType )
45988           && ( handle == rhs.handle )
45989           && ( name == rhs.name );
45990     }
45991 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR45992     bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45993     {
45994       return !operator==( rhs );
45995     }
45996 #endif
45997 
45998 
45999 
46000   public:
46001     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
46002     const void* pNext = {};
46003     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
46004     HANDLE handle = {};
46005     LPCWSTR name = {};
46006 
46007   };
46008   static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46009   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46010 
46011   template <>
46012   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
46013   {
46014     using Type = ImportMemoryWin32HandleInfoKHR;
46015   };
46016 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46017 
46018 #ifdef VK_USE_PLATFORM_WIN32_KHR
46019   struct ImportMemoryWin32HandleInfoNV
46020   {
46021     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
46022 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46023     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {},
46024                                                         HANDLE handle_ = {} ) VULKAN_HPP_NOEXCEPT
46025       : handleType( handleType_ )
46026       , handle( handle_ )
46027     {}
46028 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46029     ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46030     {
46031       memcpy( &pNext, &rhs.pNext, sizeof( ImportMemoryWin32HandleInfoNV ) - offsetof( ImportMemoryWin32HandleInfoNV, pNext ) );
46032       return *this;
46033     }
46034 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46035     ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46036     {
46037       *this = rhs;
46038     }
46039 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46040     ImportMemoryWin32HandleInfoNV& operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46041     {
46042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>(&rhs);
46043       return *this;
46044     }
46045 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46046     ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46047     {
46048       pNext = pNext_;
46049       return *this;
46050     }
46051 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46052     ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
46053     {
46054       handleType = handleType_;
46055       return *this;
46056     }
46057 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46058     ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46059     {
46060       handle = handle_;
46061       return *this;
46062     }
46063 
46064 
operator VkImportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46065     operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
46066     {
46067       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
46068     }
46069 
operator VkImportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46070     operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
46071     {
46072       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
46073     }
46074 
46075 
46076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46077     auto operator<=>( ImportMemoryWin32HandleInfoNV const& ) const = default;
46078 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46079     bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
46080     {
46081       return ( sType == rhs.sType )
46082           && ( pNext == rhs.pNext )
46083           && ( handleType == rhs.handleType )
46084           && ( handle == rhs.handle );
46085     }
46086 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV46087     bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
46088     {
46089       return !operator==( rhs );
46090     }
46091 #endif
46092 
46093 
46094 
46095   public:
46096     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
46097     const void* pNext = {};
46098     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
46099     HANDLE handle = {};
46100 
46101   };
46102   static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
46103   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
46104 
46105   template <>
46106   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
46107   {
46108     using Type = ImportMemoryWin32HandleInfoNV;
46109   };
46110 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46111 
46112   struct ImportSemaphoreFdInfoKHR
46113   {
46114     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
46115 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46116     VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
46117                                                    VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
46118                                                    VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
46119                                                    int fd_ = {} ) VULKAN_HPP_NOEXCEPT
46120       : semaphore( semaphore_ )
46121       , flags( flags_ )
46122       , handleType( handleType_ )
46123       , fd( fd_ )
46124     {}
46125 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46126     ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46127     {
46128       memcpy( &pNext, &rhs.pNext, sizeof( ImportSemaphoreFdInfoKHR ) - offsetof( ImportSemaphoreFdInfoKHR, pNext ) );
46129       return *this;
46130     }
46131 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46132     ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46133     {
46134       *this = rhs;
46135     }
46136 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46137     ImportSemaphoreFdInfoKHR& operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46138     {
46139       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>(&rhs);
46140       return *this;
46141     }
46142 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46143     ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46144     {
46145       pNext = pNext_;
46146       return *this;
46147     }
46148 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46149     ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46150     {
46151       semaphore = semaphore_;
46152       return *this;
46153     }
46154 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46155     ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46156     {
46157       flags = flags_;
46158       return *this;
46159     }
46160 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46161     ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46162     {
46163       handleType = handleType_;
46164       return *this;
46165     }
46166 
setFdVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46167     ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
46168     {
46169       fd = fd_;
46170       return *this;
46171     }
46172 
46173 
operator VkImportSemaphoreFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46174     operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46175     {
46176       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
46177     }
46178 
operator VkImportSemaphoreFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46179     operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46180     {
46181       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
46182     }
46183 
46184 
46185 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46186     auto operator<=>( ImportSemaphoreFdInfoKHR const& ) const = default;
46187 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46188     bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46189     {
46190       return ( sType == rhs.sType )
46191           && ( pNext == rhs.pNext )
46192           && ( semaphore == rhs.semaphore )
46193           && ( flags == rhs.flags )
46194           && ( handleType == rhs.handleType )
46195           && ( fd == rhs.fd );
46196     }
46197 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46198     bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46199     {
46200       return !operator==( rhs );
46201     }
46202 #endif
46203 
46204 
46205 
46206   public:
46207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
46208     const void* pNext = {};
46209     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46210     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46211     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46212     int fd = {};
46213 
46214   };
46215   static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" );
46216   static_assert( std::is_standard_layout<ImportSemaphoreFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46217 
46218   template <>
46219   struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
46220   {
46221     using Type = ImportSemaphoreFdInfoKHR;
46222   };
46223 
46224 #ifdef VK_USE_PLATFORM_WIN32_KHR
46225   struct ImportSemaphoreWin32HandleInfoKHR
46226   {
46227     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46228 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46229     VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
46230                                                             VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
46231                                                             VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
46232                                                             HANDLE handle_ = {},
46233                                                             LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT
46234       : semaphore( semaphore_ )
46235       , flags( flags_ )
46236       , handleType( handleType_ )
46237       , handle( handle_ )
46238       , name( name_ )
46239     {}
46240 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46241     ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46242     {
46243       memcpy( &pNext, &rhs.pNext, sizeof( ImportSemaphoreWin32HandleInfoKHR ) - offsetof( ImportSemaphoreWin32HandleInfoKHR, pNext ) );
46244       return *this;
46245     }
46246 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46247     ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46248     {
46249       *this = rhs;
46250     }
46251 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46252     ImportSemaphoreWin32HandleInfoKHR& operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46253     {
46254       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>(&rhs);
46255       return *this;
46256     }
46257 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46258     ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46259     {
46260       pNext = pNext_;
46261       return *this;
46262     }
46263 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46264     ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46265     {
46266       semaphore = semaphore_;
46267       return *this;
46268     }
46269 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46270     ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46271     {
46272       flags = flags_;
46273       return *this;
46274     }
46275 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46276     ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46277     {
46278       handleType = handleType_;
46279       return *this;
46280     }
46281 
setHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46282     ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46283     {
46284       handle = handle_;
46285       return *this;
46286     }
46287 
setNameVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46288     ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
46289     {
46290       name = name_;
46291       return *this;
46292     }
46293 
46294 
operator VkImportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46295     operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46296     {
46297       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
46298     }
46299 
operator VkImportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46300     operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46301     {
46302       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
46303     }
46304 
46305 
46306 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46307     auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const& ) const = default;
46308 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46309     bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46310     {
46311       return ( sType == rhs.sType )
46312           && ( pNext == rhs.pNext )
46313           && ( semaphore == rhs.semaphore )
46314           && ( flags == rhs.flags )
46315           && ( handleType == rhs.handleType )
46316           && ( handle == rhs.handle )
46317           && ( name == rhs.name );
46318     }
46319 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46320     bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46321     {
46322       return !operator==( rhs );
46323     }
46324 #endif
46325 
46326 
46327 
46328   public:
46329     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46330     const void* pNext = {};
46331     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46332     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46333     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46334     HANDLE handle = {};
46335     LPCWSTR name = {};
46336 
46337   };
46338   static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46339   static_assert( std::is_standard_layout<ImportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46340 
46341   template <>
46342   struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
46343   {
46344     using Type = ImportSemaphoreWin32HandleInfoKHR;
46345   };
46346 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46347 
46348   struct IndirectCommandsLayoutTokenNV
46349   {
46350     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
46351 
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46352     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup,
46353                                                         uint32_t stream_ = {},
46354                                                         uint32_t offset_ = {},
46355                                                         uint32_t vertexBindingUnit_ = {},
46356                                                         VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {},
46357                                                         VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {},
46358                                                         VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {},
46359                                                         uint32_t pushconstantOffset_ = {},
46360                                                         uint32_t pushconstantSize_ = {},
46361                                                         VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {},
46362                                                         uint32_t indexTypeCount_ = {},
46363                                                         const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ = {},
46364                                                         const uint32_t* pIndexTypeValues_ = {} ) VULKAN_HPP_NOEXCEPT
46365       : tokenType( tokenType_ )
46366       , stream( stream_ )
46367       , offset( offset_ )
46368       , vertexBindingUnit( vertexBindingUnit_ )
46369       , vertexDynamicStride( vertexDynamicStride_ )
46370       , pushconstantPipelineLayout( pushconstantPipelineLayout_ )
46371       , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ )
46372       , pushconstantOffset( pushconstantOffset_ )
46373       , pushconstantSize( pushconstantSize_ )
46374       , indirectStateFlags( indirectStateFlags_ )
46375       , indexTypeCount( indexTypeCount_ )
46376       , pIndexTypes( pIndexTypes_ )
46377       , pIndexTypeValues( pIndexTypeValues_ )
46378     {}
46379 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46380     IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
46381     {
46382       memcpy( &pNext, &rhs.pNext, sizeof( IndirectCommandsLayoutTokenNV ) - offsetof( IndirectCommandsLayoutTokenNV, pNext ) );
46383       return *this;
46384     }
46385 
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46386     IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
46387     {
46388       *this = rhs;
46389     }
46390 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46391     IndirectCommandsLayoutTokenNV& operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
46392     {
46393       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>(&rhs);
46394       return *this;
46395     }
46396 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46397     IndirectCommandsLayoutTokenNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46398     {
46399       pNext = pNext_;
46400       return *this;
46401     }
46402 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46403     IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
46404     {
46405       tokenType = tokenType_;
46406       return *this;
46407     }
46408 
setStreamVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46409     IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
46410     {
46411       stream = stream_;
46412       return *this;
46413     }
46414 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46415     IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
46416     {
46417       offset = offset_;
46418       return *this;
46419     }
46420 
setVertexBindingUnitVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46421     IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
46422     {
46423       vertexBindingUnit = vertexBindingUnit_;
46424       return *this;
46425     }
46426 
setVertexDynamicStrideVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46427     IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
46428     {
46429       vertexDynamicStride = vertexDynamicStride_;
46430       return *this;
46431     }
46432 
setPushconstantPipelineLayoutVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46433     IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
46434     {
46435       pushconstantPipelineLayout = pushconstantPipelineLayout_;
46436       return *this;
46437     }
46438 
setPushconstantShaderStageFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46439     IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
46440     {
46441       pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
46442       return *this;
46443     }
46444 
setPushconstantOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46445     IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
46446     {
46447       pushconstantOffset = pushconstantOffset_;
46448       return *this;
46449     }
46450 
setPushconstantSizeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46451     IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
46452     {
46453       pushconstantSize = pushconstantSize_;
46454       return *this;
46455     }
46456 
setIndirectStateFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46457     IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
46458     {
46459       indirectStateFlags = indirectStateFlags_;
46460       return *this;
46461     }
46462 
setIndexTypeCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46463     IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
46464     {
46465       indexTypeCount = indexTypeCount_;
46466       return *this;
46467     }
46468 
setPIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46469     IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
46470     {
46471       pIndexTypes = pIndexTypes_;
46472       return *this;
46473     }
46474 
setPIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46475     IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t* pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
46476     {
46477       pIndexTypeValues = pIndexTypeValues_;
46478       return *this;
46479     }
46480 
46481 
operator VkIndirectCommandsLayoutTokenNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46482     operator VkIndirectCommandsLayoutTokenNV const&() const VULKAN_HPP_NOEXCEPT
46483     {
46484       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV*>( this );
46485     }
46486 
operator VkIndirectCommandsLayoutTokenNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46487     operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
46488     {
46489       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV*>( this );
46490     }
46491 
46492 
46493 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46494     auto operator<=>( IndirectCommandsLayoutTokenNV const& ) const = default;
46495 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46496     bool operator==( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
46497     {
46498       return ( sType == rhs.sType )
46499           && ( pNext == rhs.pNext )
46500           && ( tokenType == rhs.tokenType )
46501           && ( stream == rhs.stream )
46502           && ( offset == rhs.offset )
46503           && ( vertexBindingUnit == rhs.vertexBindingUnit )
46504           && ( vertexDynamicStride == rhs.vertexDynamicStride )
46505           && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout )
46506           && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags )
46507           && ( pushconstantOffset == rhs.pushconstantOffset )
46508           && ( pushconstantSize == rhs.pushconstantSize )
46509           && ( indirectStateFlags == rhs.indirectStateFlags )
46510           && ( indexTypeCount == rhs.indexTypeCount )
46511           && ( pIndexTypes == rhs.pIndexTypes )
46512           && ( pIndexTypeValues == rhs.pIndexTypeValues );
46513     }
46514 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV46515     bool operator!=( IndirectCommandsLayoutTokenNV 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::eIndirectCommandsLayoutTokenNV;
46525     const void* pNext = {};
46526     VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
46527     uint32_t stream = {};
46528     uint32_t offset = {};
46529     uint32_t vertexBindingUnit = {};
46530     VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
46531     VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
46532     VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
46533     uint32_t pushconstantOffset = {};
46534     uint32_t pushconstantSize = {};
46535     VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
46536     uint32_t indexTypeCount = {};
46537     const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes = {};
46538     const uint32_t* pIndexTypeValues = {};
46539 
46540   };
46541   static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), "struct and wrapper have different size!" );
46542   static_assert( std::is_standard_layout<IndirectCommandsLayoutTokenNV>::value, "struct wrapper is not a standard layout!" );
46543 
46544   template <>
46545   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
46546   {
46547     using Type = IndirectCommandsLayoutTokenNV;
46548   };
46549 
46550   struct IndirectCommandsLayoutCreateInfoNV
46551   {
46552     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
46553 
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46554     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {},
46555                                                              VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
46556                                                              uint32_t tokenCount_ = {},
46557                                                              const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ = {},
46558                                                              uint32_t streamCount_ = {},
46559                                                              const uint32_t* pStreamStrides_ = {} ) VULKAN_HPP_NOEXCEPT
46560       : flags( flags_ )
46561       , pipelineBindPoint( pipelineBindPoint_ )
46562       , tokenCount( tokenCount_ )
46563       , pTokens( pTokens_ )
46564       , streamCount( streamCount_ )
46565       , pStreamStrides( pStreamStrides_ )
46566     {}
46567 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46568     IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46569     {
46570       memcpy( &pNext, &rhs.pNext, sizeof( IndirectCommandsLayoutCreateInfoNV ) - offsetof( IndirectCommandsLayoutCreateInfoNV, pNext ) );
46571       return *this;
46572     }
46573 
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46574     IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46575     {
46576       *this = rhs;
46577     }
46578 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46579     IndirectCommandsLayoutCreateInfoNV& operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46580     {
46581       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>(&rhs);
46582       return *this;
46583     }
46584 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46585     IndirectCommandsLayoutCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46586     {
46587       pNext = pNext_;
46588       return *this;
46589     }
46590 
setFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46591     IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
46592     {
46593       flags = flags_;
46594       return *this;
46595     }
46596 
setPipelineBindPointVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46597     IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
46598     {
46599       pipelineBindPoint = pipelineBindPoint_;
46600       return *this;
46601     }
46602 
setTokenCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46603     IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
46604     {
46605       tokenCount = tokenCount_;
46606       return *this;
46607     }
46608 
setPTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46609     IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ ) VULKAN_HPP_NOEXCEPT
46610     {
46611       pTokens = pTokens_;
46612       return *this;
46613     }
46614 
setStreamCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46615     IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
46616     {
46617       streamCount = streamCount_;
46618       return *this;
46619     }
46620 
setPStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46621     IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t* pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
46622     {
46623       pStreamStrides = pStreamStrides_;
46624       return *this;
46625     }
46626 
46627 
operator VkIndirectCommandsLayoutCreateInfoNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46628     operator VkIndirectCommandsLayoutCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
46629     {
46630       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( this );
46631     }
46632 
operator VkIndirectCommandsLayoutCreateInfoNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46633     operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
46634     {
46635       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV*>( this );
46636     }
46637 
46638 
46639 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46640     auto operator<=>( IndirectCommandsLayoutCreateInfoNV const& ) const = default;
46641 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46642     bool operator==( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
46643     {
46644       return ( sType == rhs.sType )
46645           && ( pNext == rhs.pNext )
46646           && ( flags == rhs.flags )
46647           && ( pipelineBindPoint == rhs.pipelineBindPoint )
46648           && ( tokenCount == rhs.tokenCount )
46649           && ( pTokens == rhs.pTokens )
46650           && ( streamCount == rhs.streamCount )
46651           && ( pStreamStrides == rhs.pStreamStrides );
46652     }
46653 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV46654     bool operator!=( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
46655     {
46656       return !operator==( rhs );
46657     }
46658 #endif
46659 
46660 
46661 
46662   public:
46663     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
46664     const void* pNext = {};
46665     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
46666     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
46667     uint32_t tokenCount = {};
46668     const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens = {};
46669     uint32_t streamCount = {};
46670     const uint32_t* pStreamStrides = {};
46671 
46672   };
46673   static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), "struct and wrapper have different size!" );
46674   static_assert( std::is_standard_layout<IndirectCommandsLayoutCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
46675 
46676   template <>
46677   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
46678   {
46679     using Type = IndirectCommandsLayoutCreateInfoNV;
46680   };
46681 
46682   struct InitializePerformanceApiInfoINTEL
46683   {
46684     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
46685 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46686     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( void* pUserData_ = {} ) VULKAN_HPP_NOEXCEPT
46687       : pUserData( pUserData_ )
46688     {}
46689 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46690     InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46691     {
46692       memcpy( &pNext, &rhs.pNext, sizeof( InitializePerformanceApiInfoINTEL ) - offsetof( InitializePerformanceApiInfoINTEL, pNext ) );
46693       return *this;
46694     }
46695 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46696     InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46697     {
46698       *this = rhs;
46699     }
46700 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46701     InitializePerformanceApiInfoINTEL& operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46702     {
46703       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>(&rhs);
46704       return *this;
46705     }
46706 
setPNextVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46707     InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46708     {
46709       pNext = pNext_;
46710       return *this;
46711     }
46712 
setPUserDataVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46713     InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
46714     {
46715       pUserData = pUserData_;
46716       return *this;
46717     }
46718 
46719 
operator VkInitializePerformanceApiInfoINTEL const&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46720     operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
46721     {
46722       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
46723     }
46724 
operator VkInitializePerformanceApiInfoINTEL&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46725     operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
46726     {
46727       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
46728     }
46729 
46730 
46731 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46732     auto operator<=>( InitializePerformanceApiInfoINTEL const& ) const = default;
46733 #else
operator ==VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46734     bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
46735     {
46736       return ( sType == rhs.sType )
46737           && ( pNext == rhs.pNext )
46738           && ( pUserData == rhs.pUserData );
46739     }
46740 
operator !=VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46741     bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
46742     {
46743       return !operator==( rhs );
46744     }
46745 #endif
46746 
46747 
46748 
46749   public:
46750     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
46751     const void* pNext = {};
46752     void* pUserData = {};
46753 
46754   };
46755   static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" );
46756   static_assert( std::is_standard_layout<InitializePerformanceApiInfoINTEL>::value, "struct wrapper is not a standard layout!" );
46757 
46758   template <>
46759   struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
46760   {
46761     using Type = InitializePerformanceApiInfoINTEL;
46762   };
46763 
46764   struct InputAttachmentAspectReference
46765   {
46766 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46767     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( uint32_t subpass_ = {},
46768                                                          uint32_t inputAttachmentIndex_ = {},
46769                                                          VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT
46770       : subpass( subpass_ )
46771       , inputAttachmentIndex( inputAttachmentIndex_ )
46772       , aspectMask( aspectMask_ )
46773     {}
46774 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46775     InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
46776     {
46777       *this = rhs;
46778     }
46779 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46780     InputAttachmentAspectReference& operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
46781     {
46782       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>(&rhs);
46783       return *this;
46784     }
46785 
setSubpassVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46786     InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
46787     {
46788       subpass = subpass_;
46789       return *this;
46790     }
46791 
setInputAttachmentIndexVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46792     InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
46793     {
46794       inputAttachmentIndex = inputAttachmentIndex_;
46795       return *this;
46796     }
46797 
setAspectMaskVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46798     InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
46799     {
46800       aspectMask = aspectMask_;
46801       return *this;
46802     }
46803 
46804 
operator VkInputAttachmentAspectReference const&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46805     operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT
46806     {
46807       return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
46808     }
46809 
operator VkInputAttachmentAspectReference&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46810     operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
46811     {
46812       return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
46813     }
46814 
46815 
46816 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46817     auto operator<=>( InputAttachmentAspectReference const& ) const = default;
46818 #else
operator ==VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46819     bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
46820     {
46821       return ( subpass == rhs.subpass )
46822           && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
46823           && ( aspectMask == rhs.aspectMask );
46824     }
46825 
operator !=VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference46826     bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
46827     {
46828       return !operator==( rhs );
46829     }
46830 #endif
46831 
46832 
46833 
46834   public:
46835     uint32_t subpass = {};
46836     uint32_t inputAttachmentIndex = {};
46837     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
46838 
46839   };
46840   static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" );
46841   static_assert( std::is_standard_layout<InputAttachmentAspectReference>::value, "struct wrapper is not a standard layout!" );
46842 
46843   struct InstanceCreateInfo
46844   {
46845     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
46846 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo46847     VULKAN_HPP_CONSTEXPR InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {},
46848                                              const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ = {},
46849                                              uint32_t enabledLayerCount_ = {},
46850                                              const char* const* ppEnabledLayerNames_ = {},
46851                                              uint32_t enabledExtensionCount_ = {},
46852                                              const char* const* ppEnabledExtensionNames_ = {} ) VULKAN_HPP_NOEXCEPT
46853       : flags( flags_ )
46854       , pApplicationInfo( pApplicationInfo_ )
46855       , enabledLayerCount( enabledLayerCount_ )
46856       , ppEnabledLayerNames( ppEnabledLayerNames_ )
46857       , enabledExtensionCount( enabledExtensionCount_ )
46858       , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
46859     {}
46860 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo46861     InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
46862     {
46863       memcpy( &pNext, &rhs.pNext, sizeof( InstanceCreateInfo ) - offsetof( InstanceCreateInfo, pNext ) );
46864       return *this;
46865     }
46866 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo46867     InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
46868     {
46869       *this = rhs;
46870     }
46871 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo46872     InstanceCreateInfo& operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
46873     {
46874       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>(&rhs);
46875       return *this;
46876     }
46877 
setPNextVULKAN_HPP_NAMESPACE::InstanceCreateInfo46878     InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46879     {
46880       pNext = pNext_;
46881       return *this;
46882     }
46883 
setFlagsVULKAN_HPP_NAMESPACE::InstanceCreateInfo46884     InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
46885     {
46886       flags = flags_;
46887       return *this;
46888     }
46889 
setPApplicationInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo46890     InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
46891     {
46892       pApplicationInfo = pApplicationInfo_;
46893       return *this;
46894     }
46895 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo46896     InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
46897     {
46898       enabledLayerCount = enabledLayerCount_;
46899       return *this;
46900     }
46901 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo46902     InstanceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
46903     {
46904       ppEnabledLayerNames = ppEnabledLayerNames_;
46905       return *this;
46906     }
46907 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo46908     InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
46909     {
46910       enabledExtensionCount = enabledExtensionCount_;
46911       return *this;
46912     }
46913 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo46914     InstanceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
46915     {
46916       ppEnabledExtensionNames = ppEnabledExtensionNames_;
46917       return *this;
46918     }
46919 
46920 
operator VkInstanceCreateInfo const&VULKAN_HPP_NAMESPACE::InstanceCreateInfo46921     operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
46922     {
46923       return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
46924     }
46925 
operator VkInstanceCreateInfo&VULKAN_HPP_NAMESPACE::InstanceCreateInfo46926     operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
46927     {
46928       return *reinterpret_cast<VkInstanceCreateInfo*>( this );
46929     }
46930 
46931 
46932 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46933     auto operator<=>( InstanceCreateInfo const& ) const = default;
46934 #else
operator ==VULKAN_HPP_NAMESPACE::InstanceCreateInfo46935     bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
46936     {
46937       return ( sType == rhs.sType )
46938           && ( pNext == rhs.pNext )
46939           && ( flags == rhs.flags )
46940           && ( pApplicationInfo == rhs.pApplicationInfo )
46941           && ( enabledLayerCount == rhs.enabledLayerCount )
46942           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
46943           && ( enabledExtensionCount == rhs.enabledExtensionCount )
46944           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames );
46945     }
46946 
operator !=VULKAN_HPP_NAMESPACE::InstanceCreateInfo46947     bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
46948     {
46949       return !operator==( rhs );
46950     }
46951 #endif
46952 
46953 
46954 
46955   public:
46956     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
46957     const void* pNext = {};
46958     VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
46959     const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {};
46960     uint32_t enabledLayerCount = {};
46961     const char* const* ppEnabledLayerNames = {};
46962     uint32_t enabledExtensionCount = {};
46963     const char* const* ppEnabledExtensionNames = {};
46964 
46965   };
46966   static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
46967   static_assert( std::is_standard_layout<InstanceCreateInfo>::value, "struct wrapper is not a standard layout!" );
46968 
46969   template <>
46970   struct CppType<StructureType, StructureType::eInstanceCreateInfo>
46971   {
46972     using Type = InstanceCreateInfo;
46973   };
46974 
46975   struct LayerProperties
46976   {
46977 
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties46978     VULKAN_HPP_CONSTEXPR_14 LayerProperties( std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& layerName_ = {},
46979                                              uint32_t specVersion_ = {},
46980                                              uint32_t implementationVersion_ = {},
46981                                              std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {} ) VULKAN_HPP_NOEXCEPT
46982       : layerName( layerName_ )
46983       , specVersion( specVersion_ )
46984       , implementationVersion( implementationVersion_ )
46985       , description( description_ )
46986     {}
46987 
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties46988     LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
46989     {
46990       *this = rhs;
46991     }
46992 
operator =VULKAN_HPP_NAMESPACE::LayerProperties46993     LayerProperties& operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
46994     {
46995       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>(&rhs);
46996       return *this;
46997     }
46998 
46999 
operator VkLayerProperties const&VULKAN_HPP_NAMESPACE::LayerProperties47000     operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT
47001     {
47002       return *reinterpret_cast<const VkLayerProperties*>( this );
47003     }
47004 
operator VkLayerProperties&VULKAN_HPP_NAMESPACE::LayerProperties47005     operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
47006     {
47007       return *reinterpret_cast<VkLayerProperties*>( this );
47008     }
47009 
47010 
47011 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47012     auto operator<=>( LayerProperties const& ) const = default;
47013 #else
operator ==VULKAN_HPP_NAMESPACE::LayerProperties47014     bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
47015     {
47016       return ( layerName == rhs.layerName )
47017           && ( specVersion == rhs.specVersion )
47018           && ( implementationVersion == rhs.implementationVersion )
47019           && ( description == rhs.description );
47020     }
47021 
operator !=VULKAN_HPP_NAMESPACE::LayerProperties47022     bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
47023     {
47024       return !operator==( rhs );
47025     }
47026 #endif
47027 
47028 
47029 
47030   public:
47031     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
47032     uint32_t specVersion = {};
47033     uint32_t implementationVersion = {};
47034     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
47035 
47036   };
47037   static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" );
47038   static_assert( std::is_standard_layout<LayerProperties>::value, "struct wrapper is not a standard layout!" );
47039 
47040 #ifdef VK_USE_PLATFORM_MACOS_MVK
47041   struct MacOSSurfaceCreateInfoMVK
47042   {
47043     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
47044 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47045     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {},
47046                                                     const void* pView_ = {} ) VULKAN_HPP_NOEXCEPT
47047       : flags( flags_ )
47048       , pView( pView_ )
47049     {}
47050 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47051     MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
47052     {
47053       memcpy( &pNext, &rhs.pNext, sizeof( MacOSSurfaceCreateInfoMVK ) - offsetof( MacOSSurfaceCreateInfoMVK, pNext ) );
47054       return *this;
47055     }
47056 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47057     MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
47058     {
47059       *this = rhs;
47060     }
47061 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47062     MacOSSurfaceCreateInfoMVK& operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
47063     {
47064       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>(&rhs);
47065       return *this;
47066     }
47067 
setPNextVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47068     MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47069     {
47070       pNext = pNext_;
47071       return *this;
47072     }
47073 
setFlagsVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47074     MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
47075     {
47076       flags = flags_;
47077       return *this;
47078     }
47079 
setPViewVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47080     MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
47081     {
47082       pView = pView_;
47083       return *this;
47084     }
47085 
47086 
operator VkMacOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47087     operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
47088     {
47089       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
47090     }
47091 
operator VkMacOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47092     operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
47093     {
47094       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
47095     }
47096 
47097 
47098 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47099     auto operator<=>( MacOSSurfaceCreateInfoMVK const& ) const = default;
47100 #else
operator ==VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47101     bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
47102     {
47103       return ( sType == rhs.sType )
47104           && ( pNext == rhs.pNext )
47105           && ( flags == rhs.flags )
47106           && ( pView == rhs.pView );
47107     }
47108 
operator !=VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK47109     bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
47110     {
47111       return !operator==( rhs );
47112     }
47113 #endif
47114 
47115 
47116 
47117   public:
47118     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
47119     const void* pNext = {};
47120     VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
47121     const void* pView = {};
47122 
47123   };
47124   static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
47125   static_assert( std::is_standard_layout<MacOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
47126 
47127   template <>
47128   struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
47129   {
47130     using Type = MacOSSurfaceCreateInfoMVK;
47131   };
47132 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
47133 
47134   struct MappedMemoryRange
47135   {
47136     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
47137 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange47138     VULKAN_HPP_CONSTEXPR MappedMemoryRange( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
47139                                             VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
47140                                             VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
47141       : memory( memory_ )
47142       , offset( offset_ )
47143       , size( size_ )
47144     {}
47145 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange47146     MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
47147     {
47148       memcpy( &pNext, &rhs.pNext, sizeof( MappedMemoryRange ) - offsetof( MappedMemoryRange, pNext ) );
47149       return *this;
47150     }
47151 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange47152     MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
47153     {
47154       *this = rhs;
47155     }
47156 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange47157     MappedMemoryRange& operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
47158     {
47159       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>(&rhs);
47160       return *this;
47161     }
47162 
setPNextVULKAN_HPP_NAMESPACE::MappedMemoryRange47163     MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47164     {
47165       pNext = pNext_;
47166       return *this;
47167     }
47168 
setMemoryVULKAN_HPP_NAMESPACE::MappedMemoryRange47169     MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47170     {
47171       memory = memory_;
47172       return *this;
47173     }
47174 
setOffsetVULKAN_HPP_NAMESPACE::MappedMemoryRange47175     MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
47176     {
47177       offset = offset_;
47178       return *this;
47179     }
47180 
setSizeVULKAN_HPP_NAMESPACE::MappedMemoryRange47181     MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
47182     {
47183       size = size_;
47184       return *this;
47185     }
47186 
47187 
operator VkMappedMemoryRange const&VULKAN_HPP_NAMESPACE::MappedMemoryRange47188     operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT
47189     {
47190       return *reinterpret_cast<const VkMappedMemoryRange*>( this );
47191     }
47192 
operator VkMappedMemoryRange&VULKAN_HPP_NAMESPACE::MappedMemoryRange47193     operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
47194     {
47195       return *reinterpret_cast<VkMappedMemoryRange*>( this );
47196     }
47197 
47198 
47199 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47200     auto operator<=>( MappedMemoryRange const& ) const = default;
47201 #else
operator ==VULKAN_HPP_NAMESPACE::MappedMemoryRange47202     bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
47203     {
47204       return ( sType == rhs.sType )
47205           && ( pNext == rhs.pNext )
47206           && ( memory == rhs.memory )
47207           && ( offset == rhs.offset )
47208           && ( size == rhs.size );
47209     }
47210 
operator !=VULKAN_HPP_NAMESPACE::MappedMemoryRange47211     bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
47212     {
47213       return !operator==( rhs );
47214     }
47215 #endif
47216 
47217 
47218 
47219   public:
47220     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
47221     const void* pNext = {};
47222     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47223     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
47224     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
47225 
47226   };
47227   static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" );
47228   static_assert( std::is_standard_layout<MappedMemoryRange>::value, "struct wrapper is not a standard layout!" );
47229 
47230   template <>
47231   struct CppType<StructureType, StructureType::eMappedMemoryRange>
47232   {
47233     using Type = MappedMemoryRange;
47234   };
47235 
47236   struct MemoryAllocateFlagsInfo
47237   {
47238     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
47239 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47240     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {},
47241                                                   uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT
47242       : flags( flags_ )
47243       , deviceMask( deviceMask_ )
47244     {}
47245 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47246     MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47247     {
47248       memcpy( &pNext, &rhs.pNext, sizeof( MemoryAllocateFlagsInfo ) - offsetof( MemoryAllocateFlagsInfo, pNext ) );
47249       return *this;
47250     }
47251 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47252     MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47253     {
47254       *this = rhs;
47255     }
47256 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47257     MemoryAllocateFlagsInfo& operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47258     {
47259       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>(&rhs);
47260       return *this;
47261     }
47262 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47263     MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47264     {
47265       pNext = pNext_;
47266       return *this;
47267     }
47268 
setFlagsVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47269     MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
47270     {
47271       flags = flags_;
47272       return *this;
47273     }
47274 
setDeviceMaskVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47275     MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
47276     {
47277       deviceMask = deviceMask_;
47278       return *this;
47279     }
47280 
47281 
operator VkMemoryAllocateFlagsInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47282     operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT
47283     {
47284       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
47285     }
47286 
operator VkMemoryAllocateFlagsInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47287     operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
47288     {
47289       return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
47290     }
47291 
47292 
47293 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47294     auto operator<=>( MemoryAllocateFlagsInfo const& ) const = default;
47295 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47296     bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47297     {
47298       return ( sType == rhs.sType )
47299           && ( pNext == rhs.pNext )
47300           && ( flags == rhs.flags )
47301           && ( deviceMask == rhs.deviceMask );
47302     }
47303 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo47304     bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47305     {
47306       return !operator==( rhs );
47307     }
47308 #endif
47309 
47310 
47311 
47312   public:
47313     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
47314     const void* pNext = {};
47315     VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
47316     uint32_t deviceMask = {};
47317 
47318   };
47319   static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" );
47320   static_assert( std::is_standard_layout<MemoryAllocateFlagsInfo>::value, "struct wrapper is not a standard layout!" );
47321 
47322   template <>
47323   struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
47324   {
47325     using Type = MemoryAllocateFlagsInfo;
47326   };
47327 
47328   struct MemoryAllocateInfo
47329   {
47330     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
47331 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo47332     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
47333                                              uint32_t memoryTypeIndex_ = {} ) VULKAN_HPP_NOEXCEPT
47334       : allocationSize( allocationSize_ )
47335       , memoryTypeIndex( memoryTypeIndex_ )
47336     {}
47337 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo47338     MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47339     {
47340       memcpy( &pNext, &rhs.pNext, sizeof( MemoryAllocateInfo ) - offsetof( MemoryAllocateInfo, pNext ) );
47341       return *this;
47342     }
47343 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo47344     MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47345     {
47346       *this = rhs;
47347     }
47348 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo47349     MemoryAllocateInfo& operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47350     {
47351       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>(&rhs);
47352       return *this;
47353     }
47354 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateInfo47355     MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47356     {
47357       pNext = pNext_;
47358       return *this;
47359     }
47360 
setAllocationSizeVULKAN_HPP_NAMESPACE::MemoryAllocateInfo47361     MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
47362     {
47363       allocationSize = allocationSize_;
47364       return *this;
47365     }
47366 
setMemoryTypeIndexVULKAN_HPP_NAMESPACE::MemoryAllocateInfo47367     MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
47368     {
47369       memoryTypeIndex = memoryTypeIndex_;
47370       return *this;
47371     }
47372 
47373 
operator VkMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo47374     operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
47375     {
47376       return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
47377     }
47378 
operator VkMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo47379     operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
47380     {
47381       return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
47382     }
47383 
47384 
47385 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47386     auto operator<=>( MemoryAllocateInfo const& ) const = default;
47387 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateInfo47388     bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47389     {
47390       return ( sType == rhs.sType )
47391           && ( pNext == rhs.pNext )
47392           && ( allocationSize == rhs.allocationSize )
47393           && ( memoryTypeIndex == rhs.memoryTypeIndex );
47394     }
47395 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateInfo47396     bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47397     {
47398       return !operator==( rhs );
47399     }
47400 #endif
47401 
47402 
47403 
47404   public:
47405     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
47406     const void* pNext = {};
47407     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
47408     uint32_t memoryTypeIndex = {};
47409 
47410   };
47411   static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" );
47412   static_assert( std::is_standard_layout<MemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
47413 
47414   template <>
47415   struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
47416   {
47417     using Type = MemoryAllocateInfo;
47418   };
47419 
47420   struct MemoryBarrier
47421   {
47422     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
47423 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier47424     VULKAN_HPP_CONSTEXPR MemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
47425                                         VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {} ) VULKAN_HPP_NOEXCEPT
47426       : srcAccessMask( srcAccessMask_ )
47427       , dstAccessMask( dstAccessMask_ )
47428     {}
47429 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier47430     MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
47431     {
47432       memcpy( &pNext, &rhs.pNext, sizeof( MemoryBarrier ) - offsetof( MemoryBarrier, pNext ) );
47433       return *this;
47434     }
47435 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier47436     MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
47437     {
47438       *this = rhs;
47439     }
47440 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier47441     MemoryBarrier& operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
47442     {
47443       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>(&rhs);
47444       return *this;
47445     }
47446 
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier47447     MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47448     {
47449       pNext = pNext_;
47450       return *this;
47451     }
47452 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier47453     MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
47454     {
47455       srcAccessMask = srcAccessMask_;
47456       return *this;
47457     }
47458 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier47459     MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
47460     {
47461       dstAccessMask = dstAccessMask_;
47462       return *this;
47463     }
47464 
47465 
operator VkMemoryBarrier const&VULKAN_HPP_NAMESPACE::MemoryBarrier47466     operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
47467     {
47468       return *reinterpret_cast<const VkMemoryBarrier*>( this );
47469     }
47470 
operator VkMemoryBarrier&VULKAN_HPP_NAMESPACE::MemoryBarrier47471     operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
47472     {
47473       return *reinterpret_cast<VkMemoryBarrier*>( this );
47474     }
47475 
47476 
47477 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47478     auto operator<=>( MemoryBarrier const& ) const = default;
47479 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier47480     bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
47481     {
47482       return ( sType == rhs.sType )
47483           && ( pNext == rhs.pNext )
47484           && ( srcAccessMask == rhs.srcAccessMask )
47485           && ( dstAccessMask == rhs.dstAccessMask );
47486     }
47487 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier47488     bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
47489     {
47490       return !operator==( rhs );
47491     }
47492 #endif
47493 
47494 
47495 
47496   public:
47497     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
47498     const void* pNext = {};
47499     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
47500     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
47501 
47502   };
47503   static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" );
47504   static_assert( std::is_standard_layout<MemoryBarrier>::value, "struct wrapper is not a standard layout!" );
47505 
47506   template <>
47507   struct CppType<StructureType, StructureType::eMemoryBarrier>
47508   {
47509     using Type = MemoryBarrier;
47510   };
47511 
47512   struct MemoryDedicatedAllocateInfo
47513   {
47514     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
47515 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47516     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
47517                                                       VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT
47518       : image( image_ )
47519       , buffer( buffer_ )
47520     {}
47521 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47522     MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47523     {
47524       memcpy( &pNext, &rhs.pNext, sizeof( MemoryDedicatedAllocateInfo ) - offsetof( MemoryDedicatedAllocateInfo, pNext ) );
47525       return *this;
47526     }
47527 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47528     MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47529     {
47530       *this = rhs;
47531     }
47532 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47533     MemoryDedicatedAllocateInfo& operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47534     {
47535       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>(&rhs);
47536       return *this;
47537     }
47538 
setPNextVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47539     MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47540     {
47541       pNext = pNext_;
47542       return *this;
47543     }
47544 
setImageVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47545     MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
47546     {
47547       image = image_;
47548       return *this;
47549     }
47550 
setBufferVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47551     MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
47552     {
47553       buffer = buffer_;
47554       return *this;
47555     }
47556 
47557 
operator VkMemoryDedicatedAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47558     operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
47559     {
47560       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
47561     }
47562 
operator VkMemoryDedicatedAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47563     operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
47564     {
47565       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
47566     }
47567 
47568 
47569 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47570     auto operator<=>( MemoryDedicatedAllocateInfo const& ) const = default;
47571 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47572     bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47573     {
47574       return ( sType == rhs.sType )
47575           && ( pNext == rhs.pNext )
47576           && ( image == rhs.image )
47577           && ( buffer == rhs.buffer );
47578     }
47579 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47580     bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47581     {
47582       return !operator==( rhs );
47583     }
47584 #endif
47585 
47586 
47587 
47588   public:
47589     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
47590     const void* pNext = {};
47591     VULKAN_HPP_NAMESPACE::Image image = {};
47592     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
47593 
47594   };
47595   static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" );
47596   static_assert( std::is_standard_layout<MemoryDedicatedAllocateInfo>::value, "struct wrapper is not a standard layout!" );
47597 
47598   template <>
47599   struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
47600   {
47601     using Type = MemoryDedicatedAllocateInfo;
47602   };
47603 
47604   struct MemoryDedicatedRequirements
47605   {
47606     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
47607 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47608     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {},
47609                                                       VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT
47610       : prefersDedicatedAllocation( prefersDedicatedAllocation_ )
47611       , requiresDedicatedAllocation( requiresDedicatedAllocation_ )
47612     {}
47613 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47614     MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
47615     {
47616       memcpy( &pNext, &rhs.pNext, sizeof( MemoryDedicatedRequirements ) - offsetof( MemoryDedicatedRequirements, pNext ) );
47617       return *this;
47618     }
47619 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47620     MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
47621     {
47622       *this = rhs;
47623     }
47624 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47625     MemoryDedicatedRequirements& operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
47626     {
47627       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>(&rhs);
47628       return *this;
47629     }
47630 
47631 
operator VkMemoryDedicatedRequirements const&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47632     operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT
47633     {
47634       return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
47635     }
47636 
operator VkMemoryDedicatedRequirements&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47637     operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
47638     {
47639       return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
47640     }
47641 
47642 
47643 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47644     auto operator<=>( MemoryDedicatedRequirements const& ) const = default;
47645 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47646     bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
47647     {
47648       return ( sType == rhs.sType )
47649           && ( pNext == rhs.pNext )
47650           && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
47651           && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
47652     }
47653 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47654     bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
47655     {
47656       return !operator==( rhs );
47657     }
47658 #endif
47659 
47660 
47661 
47662   public:
47663     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
47664     void* pNext = {};
47665     VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
47666     VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
47667 
47668   };
47669   static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" );
47670   static_assert( std::is_standard_layout<MemoryDedicatedRequirements>::value, "struct wrapper is not a standard layout!" );
47671 
47672   template <>
47673   struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
47674   {
47675     using Type = MemoryDedicatedRequirements;
47676   };
47677 
47678   struct MemoryFdPropertiesKHR
47679   {
47680     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
47681 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47682     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
47683       : memoryTypeBits( memoryTypeBits_ )
47684     {}
47685 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47686     MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47687     {
47688       memcpy( &pNext, &rhs.pNext, sizeof( MemoryFdPropertiesKHR ) - offsetof( MemoryFdPropertiesKHR, pNext ) );
47689       return *this;
47690     }
47691 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47692     MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47693     {
47694       *this = rhs;
47695     }
47696 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47697     MemoryFdPropertiesKHR& operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47698     {
47699       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>(&rhs);
47700       return *this;
47701     }
47702 
47703 
operator VkMemoryFdPropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47704     operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
47705     {
47706       return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
47707     }
47708 
operator VkMemoryFdPropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47709     operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
47710     {
47711       return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
47712     }
47713 
47714 
47715 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47716     auto operator<=>( MemoryFdPropertiesKHR const& ) const = default;
47717 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47718     bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47719     {
47720       return ( sType == rhs.sType )
47721           && ( pNext == rhs.pNext )
47722           && ( memoryTypeBits == rhs.memoryTypeBits );
47723     }
47724 
operator !=VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47725     bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47726     {
47727       return !operator==( rhs );
47728     }
47729 #endif
47730 
47731 
47732 
47733   public:
47734     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
47735     void* pNext = {};
47736     uint32_t memoryTypeBits = {};
47737 
47738   };
47739   static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" );
47740   static_assert( std::is_standard_layout<MemoryFdPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
47741 
47742   template <>
47743   struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
47744   {
47745     using Type = MemoryFdPropertiesKHR;
47746   };
47747 
47748 #ifdef VK_USE_PLATFORM_ANDROID_KHR
47749   struct MemoryGetAndroidHardwareBufferInfoANDROID
47750   {
47751     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
47752 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47753     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {} ) VULKAN_HPP_NOEXCEPT
47754       : memory( memory_ )
47755     {}
47756 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47757     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
47758     {
47759       memcpy( &pNext, &rhs.pNext, sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) - offsetof( MemoryGetAndroidHardwareBufferInfoANDROID, pNext ) );
47760       return *this;
47761     }
47762 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47763     MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
47764     {
47765       *this = rhs;
47766     }
47767 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47768     MemoryGetAndroidHardwareBufferInfoANDROID& operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
47769     {
47770       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>(&rhs);
47771       return *this;
47772     }
47773 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47774     MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47775     {
47776       pNext = pNext_;
47777       return *this;
47778     }
47779 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47780     MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47781     {
47782       memory = memory_;
47783       return *this;
47784     }
47785 
47786 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47787     operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
47788     {
47789       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
47790     }
47791 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47792     operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
47793     {
47794       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
47795     }
47796 
47797 
47798 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47799     auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const& ) const = default;
47800 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47801     bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
47802     {
47803       return ( sType == rhs.sType )
47804           && ( pNext == rhs.pNext )
47805           && ( memory == rhs.memory );
47806     }
47807 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47808     bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
47809     {
47810       return !operator==( rhs );
47811     }
47812 #endif
47813 
47814 
47815 
47816   public:
47817     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
47818     const void* pNext = {};
47819     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47820 
47821   };
47822   static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
47823   static_assert( std::is_standard_layout<MemoryGetAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
47824 
47825   template <>
47826   struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
47827   {
47828     using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
47829   };
47830 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
47831 
47832   struct MemoryGetFdInfoKHR
47833   {
47834     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
47835 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47836     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
47837                                              VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
47838       : memory( memory_ )
47839       , handleType( handleType_ )
47840     {}
47841 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47842     MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47843     {
47844       memcpy( &pNext, &rhs.pNext, sizeof( MemoryGetFdInfoKHR ) - offsetof( MemoryGetFdInfoKHR, pNext ) );
47845       return *this;
47846     }
47847 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47848     MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47849     {
47850       *this = rhs;
47851     }
47852 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47853     MemoryGetFdInfoKHR& operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47854     {
47855       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>(&rhs);
47856       return *this;
47857     }
47858 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47859     MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47860     {
47861       pNext = pNext_;
47862       return *this;
47863     }
47864 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47865     MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47866     {
47867       memory = memory_;
47868       return *this;
47869     }
47870 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47871     MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47872     {
47873       handleType = handleType_;
47874       return *this;
47875     }
47876 
47877 
operator VkMemoryGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47878     operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47879     {
47880       return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
47881     }
47882 
operator VkMemoryGetFdInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47883     operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
47884     {
47885       return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
47886     }
47887 
47888 
47889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47890     auto operator<=>( MemoryGetFdInfoKHR const& ) const = default;
47891 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47892     bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47893     {
47894       return ( sType == rhs.sType )
47895           && ( pNext == rhs.pNext )
47896           && ( memory == rhs.memory )
47897           && ( handleType == rhs.handleType );
47898     }
47899 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47900     bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47901     {
47902       return !operator==( rhs );
47903     }
47904 #endif
47905 
47906 
47907 
47908   public:
47909     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
47910     const void* pNext = {};
47911     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47912     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
47913 
47914   };
47915   static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" );
47916   static_assert( std::is_standard_layout<MemoryGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
47917 
47918   template <>
47919   struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
47920   {
47921     using Type = MemoryGetFdInfoKHR;
47922   };
47923 
47924 #ifdef VK_USE_PLATFORM_WIN32_KHR
47925   struct MemoryGetWin32HandleInfoKHR
47926   {
47927     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
47928 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47929     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
47930                                                       VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
47931       : memory( memory_ )
47932       , handleType( handleType_ )
47933     {}
47934 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47935     MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47936     {
47937       memcpy( &pNext, &rhs.pNext, sizeof( MemoryGetWin32HandleInfoKHR ) - offsetof( MemoryGetWin32HandleInfoKHR, pNext ) );
47938       return *this;
47939     }
47940 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47941     MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47942     {
47943       *this = rhs;
47944     }
47945 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47946     MemoryGetWin32HandleInfoKHR& operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47947     {
47948       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>(&rhs);
47949       return *this;
47950     }
47951 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47952     MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47953     {
47954       pNext = pNext_;
47955       return *this;
47956     }
47957 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47958     MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47959     {
47960       memory = memory_;
47961       return *this;
47962     }
47963 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47964     MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47965     {
47966       handleType = handleType_;
47967       return *this;
47968     }
47969 
47970 
operator VkMemoryGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47971     operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47972     {
47973       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
47974     }
47975 
operator VkMemoryGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47976     operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
47977     {
47978       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
47979     }
47980 
47981 
47982 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47983     auto operator<=>( MemoryGetWin32HandleInfoKHR const& ) const = default;
47984 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47985     bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47986     {
47987       return ( sType == rhs.sType )
47988           && ( pNext == rhs.pNext )
47989           && ( memory == rhs.memory )
47990           && ( handleType == rhs.handleType );
47991     }
47992 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47993     bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47994     {
47995       return !operator==( rhs );
47996     }
47997 #endif
47998 
47999 
48000 
48001   public:
48002     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
48003     const void* pNext = {};
48004     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
48005     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
48006 
48007   };
48008   static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
48009   static_assert( std::is_standard_layout<MemoryGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
48010 
48011   template <>
48012   struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
48013   {
48014     using Type = MemoryGetWin32HandleInfoKHR;
48015   };
48016 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
48017 
48018   struct MemoryHeap
48019   {
48020 
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap48021     VULKAN_HPP_CONSTEXPR MemoryHeap( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
48022                                      VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
48023       : size( size_ )
48024       , flags( flags_ )
48025     {}
48026 
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap48027     MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
48028     {
48029       *this = rhs;
48030     }
48031 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap48032     MemoryHeap& operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
48033     {
48034       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>(&rhs);
48035       return *this;
48036     }
48037 
48038 
operator VkMemoryHeap const&VULKAN_HPP_NAMESPACE::MemoryHeap48039     operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT
48040     {
48041       return *reinterpret_cast<const VkMemoryHeap*>( this );
48042     }
48043 
operator VkMemoryHeap&VULKAN_HPP_NAMESPACE::MemoryHeap48044     operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
48045     {
48046       return *reinterpret_cast<VkMemoryHeap*>( this );
48047     }
48048 
48049 
48050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48051     auto operator<=>( MemoryHeap const& ) const = default;
48052 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHeap48053     bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
48054     {
48055       return ( size == rhs.size )
48056           && ( flags == rhs.flags );
48057     }
48058 
operator !=VULKAN_HPP_NAMESPACE::MemoryHeap48059     bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
48060     {
48061       return !operator==( rhs );
48062     }
48063 #endif
48064 
48065 
48066 
48067   public:
48068     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
48069     VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
48070 
48071   };
48072   static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" );
48073   static_assert( std::is_standard_layout<MemoryHeap>::value, "struct wrapper is not a standard layout!" );
48074 
48075   struct MemoryHostPointerPropertiesEXT
48076   {
48077     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
48078 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48079     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
48080       : memoryTypeBits( memoryTypeBits_ )
48081     {}
48082 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48083     MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48084     {
48085       memcpy( &pNext, &rhs.pNext, sizeof( MemoryHostPointerPropertiesEXT ) - offsetof( MemoryHostPointerPropertiesEXT, pNext ) );
48086       return *this;
48087     }
48088 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48089     MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48090     {
48091       *this = rhs;
48092     }
48093 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48094     MemoryHostPointerPropertiesEXT& operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48095     {
48096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>(&rhs);
48097       return *this;
48098     }
48099 
48100 
operator VkMemoryHostPointerPropertiesEXT const&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48101     operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
48102     {
48103       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
48104     }
48105 
operator VkMemoryHostPointerPropertiesEXT&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48106     operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
48107     {
48108       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
48109     }
48110 
48111 
48112 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48113     auto operator<=>( MemoryHostPointerPropertiesEXT const& ) const = default;
48114 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48115     bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48116     {
48117       return ( sType == rhs.sType )
48118           && ( pNext == rhs.pNext )
48119           && ( memoryTypeBits == rhs.memoryTypeBits );
48120     }
48121 
operator !=VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48122     bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48123     {
48124       return !operator==( rhs );
48125     }
48126 #endif
48127 
48128 
48129 
48130   public:
48131     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
48132     void* pNext = {};
48133     uint32_t memoryTypeBits = {};
48134 
48135   };
48136   static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" );
48137   static_assert( std::is_standard_layout<MemoryHostPointerPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
48138 
48139   template <>
48140   struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
48141   {
48142     using Type = MemoryHostPointerPropertiesEXT;
48143   };
48144 
48145   struct MemoryOpaqueCaptureAddressAllocateInfo
48146   {
48147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
48148 
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48149     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( uint64_t opaqueCaptureAddress_ = {} ) VULKAN_HPP_NOEXCEPT
48150       : opaqueCaptureAddress( opaqueCaptureAddress_ )
48151     {}
48152 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48153     MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48154     {
48155       memcpy( &pNext, &rhs.pNext, sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) - offsetof( MemoryOpaqueCaptureAddressAllocateInfo, pNext ) );
48156       return *this;
48157     }
48158 
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48159     MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48160     {
48161       *this = rhs;
48162     }
48163 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48164     MemoryOpaqueCaptureAddressAllocateInfo& operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48165     {
48166       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>(&rhs);
48167       return *this;
48168     }
48169 
setPNextVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48170     MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
48171     {
48172       pNext = pNext_;
48173       return *this;
48174     }
48175 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48176     MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
48177     {
48178       opaqueCaptureAddress = opaqueCaptureAddress_;
48179       return *this;
48180     }
48181 
48182 
operator VkMemoryOpaqueCaptureAddressAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48183     operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
48184     {
48185       return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
48186     }
48187 
operator VkMemoryOpaqueCaptureAddressAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48188     operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
48189     {
48190       return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
48191     }
48192 
48193 
48194 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48195     auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const& ) const = default;
48196 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48197     bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
48198     {
48199       return ( sType == rhs.sType )
48200           && ( pNext == rhs.pNext )
48201           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
48202     }
48203 
operator !=VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48204     bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
48205     {
48206       return !operator==( rhs );
48207     }
48208 #endif
48209 
48210 
48211 
48212   public:
48213     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
48214     const void* pNext = {};
48215     uint64_t opaqueCaptureAddress = {};
48216 
48217   };
48218   static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" );
48219   static_assert( std::is_standard_layout<MemoryOpaqueCaptureAddressAllocateInfo>::value, "struct wrapper is not a standard layout!" );
48220 
48221   template <>
48222   struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
48223   {
48224     using Type = MemoryOpaqueCaptureAddressAllocateInfo;
48225   };
48226 
48227   struct MemoryPriorityAllocateInfoEXT
48228   {
48229     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
48230 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48231     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( float priority_ = {} ) VULKAN_HPP_NOEXCEPT
48232       : priority( priority_ )
48233     {}
48234 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48235     MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48236     {
48237       memcpy( &pNext, &rhs.pNext, sizeof( MemoryPriorityAllocateInfoEXT ) - offsetof( MemoryPriorityAllocateInfoEXT, pNext ) );
48238       return *this;
48239     }
48240 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48241     MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48242     {
48243       *this = rhs;
48244     }
48245 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48246     MemoryPriorityAllocateInfoEXT& operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48247     {
48248       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>(&rhs);
48249       return *this;
48250     }
48251 
setPNextVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48252     MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
48253     {
48254       pNext = pNext_;
48255       return *this;
48256     }
48257 
setPriorityVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48258     MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
48259     {
48260       priority = priority_;
48261       return *this;
48262     }
48263 
48264 
operator VkMemoryPriorityAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48265     operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
48266     {
48267       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
48268     }
48269 
operator VkMemoryPriorityAllocateInfoEXT&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48270     operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
48271     {
48272       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
48273     }
48274 
48275 
48276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48277     auto operator<=>( MemoryPriorityAllocateInfoEXT const& ) const = default;
48278 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48279     bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48280     {
48281       return ( sType == rhs.sType )
48282           && ( pNext == rhs.pNext )
48283           && ( priority == rhs.priority );
48284     }
48285 
operator !=VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48286     bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48287     {
48288       return !operator==( rhs );
48289     }
48290 #endif
48291 
48292 
48293 
48294   public:
48295     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
48296     const void* pNext = {};
48297     float priority = {};
48298 
48299   };
48300   static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" );
48301   static_assert( std::is_standard_layout<MemoryPriorityAllocateInfoEXT>::value, "struct wrapper is not a standard layout!" );
48302 
48303   template <>
48304   struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
48305   {
48306     using Type = MemoryPriorityAllocateInfoEXT;
48307   };
48308 
48309   struct MemoryRequirements
48310   {
48311 
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements48312     VULKAN_HPP_CONSTEXPR MemoryRequirements( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
48313                                              VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {},
48314                                              uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
48315       : size( size_ )
48316       , alignment( alignment_ )
48317       , memoryTypeBits( memoryTypeBits_ )
48318     {}
48319 
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements48320     MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
48321     {
48322       *this = rhs;
48323     }
48324 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements48325     MemoryRequirements& operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
48326     {
48327       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>(&rhs);
48328       return *this;
48329     }
48330 
48331 
operator VkMemoryRequirements const&VULKAN_HPP_NAMESPACE::MemoryRequirements48332     operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
48333     {
48334       return *reinterpret_cast<const VkMemoryRequirements*>( this );
48335     }
48336 
operator VkMemoryRequirements&VULKAN_HPP_NAMESPACE::MemoryRequirements48337     operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
48338     {
48339       return *reinterpret_cast<VkMemoryRequirements*>( this );
48340     }
48341 
48342 
48343 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48344     auto operator<=>( MemoryRequirements const& ) const = default;
48345 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements48346     bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
48347     {
48348       return ( size == rhs.size )
48349           && ( alignment == rhs.alignment )
48350           && ( memoryTypeBits == rhs.memoryTypeBits );
48351     }
48352 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements48353     bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
48354     {
48355       return !operator==( rhs );
48356     }
48357 #endif
48358 
48359 
48360 
48361   public:
48362     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
48363     VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
48364     uint32_t memoryTypeBits = {};
48365 
48366   };
48367   static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
48368   static_assert( std::is_standard_layout<MemoryRequirements>::value, "struct wrapper is not a standard layout!" );
48369 
48370   struct MemoryRequirements2
48371   {
48372     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
48373 
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements248374     VULKAN_HPP_CONSTEXPR MemoryRequirements2( VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {} ) VULKAN_HPP_NOEXCEPT
48375       : memoryRequirements( memoryRequirements_ )
48376     {}
48377 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements248378     MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
48379     {
48380       memcpy( &pNext, &rhs.pNext, sizeof( MemoryRequirements2 ) - offsetof( MemoryRequirements2, pNext ) );
48381       return *this;
48382     }
48383 
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements248384     MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
48385     {
48386       *this = rhs;
48387     }
48388 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements248389     MemoryRequirements2& operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
48390     {
48391       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>(&rhs);
48392       return *this;
48393     }
48394 
48395 
operator VkMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::MemoryRequirements248396     operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
48397     {
48398       return *reinterpret_cast<const VkMemoryRequirements2*>( this );
48399     }
48400 
operator VkMemoryRequirements2&VULKAN_HPP_NAMESPACE::MemoryRequirements248401     operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
48402     {
48403       return *reinterpret_cast<VkMemoryRequirements2*>( this );
48404     }
48405 
48406 
48407 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48408     auto operator<=>( MemoryRequirements2 const& ) const = default;
48409 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements248410     bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
48411     {
48412       return ( sType == rhs.sType )
48413           && ( pNext == rhs.pNext )
48414           && ( memoryRequirements == rhs.memoryRequirements );
48415     }
48416 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements248417     bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
48418     {
48419       return !operator==( rhs );
48420     }
48421 #endif
48422 
48423 
48424 
48425   public:
48426     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
48427     void* pNext = {};
48428     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
48429 
48430   };
48431   static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" );
48432   static_assert( std::is_standard_layout<MemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
48433 
48434   template <>
48435   struct CppType<StructureType, StructureType::eMemoryRequirements2>
48436   {
48437     using Type = MemoryRequirements2;
48438   };
48439 
48440   struct MemoryType
48441   {
48442 
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType48443     VULKAN_HPP_CONSTEXPR MemoryType( VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {},
48444                                      uint32_t heapIndex_ = {} ) VULKAN_HPP_NOEXCEPT
48445       : propertyFlags( propertyFlags_ )
48446       , heapIndex( heapIndex_ )
48447     {}
48448 
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType48449     MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
48450     {
48451       *this = rhs;
48452     }
48453 
operator =VULKAN_HPP_NAMESPACE::MemoryType48454     MemoryType& operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
48455     {
48456       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>(&rhs);
48457       return *this;
48458     }
48459 
48460 
operator VkMemoryType const&VULKAN_HPP_NAMESPACE::MemoryType48461     operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT
48462     {
48463       return *reinterpret_cast<const VkMemoryType*>( this );
48464     }
48465 
operator VkMemoryType&VULKAN_HPP_NAMESPACE::MemoryType48466     operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
48467     {
48468       return *reinterpret_cast<VkMemoryType*>( this );
48469     }
48470 
48471 
48472 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48473     auto operator<=>( MemoryType const& ) const = default;
48474 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryType48475     bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
48476     {
48477       return ( propertyFlags == rhs.propertyFlags )
48478           && ( heapIndex == rhs.heapIndex );
48479     }
48480 
operator !=VULKAN_HPP_NAMESPACE::MemoryType48481     bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
48482     {
48483       return !operator==( rhs );
48484     }
48485 #endif
48486 
48487 
48488 
48489   public:
48490     VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
48491     uint32_t heapIndex = {};
48492 
48493   };
48494   static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" );
48495   static_assert( std::is_standard_layout<MemoryType>::value, "struct wrapper is not a standard layout!" );
48496 
48497 #ifdef VK_USE_PLATFORM_WIN32_KHR
48498   struct MemoryWin32HandlePropertiesKHR
48499   {
48500     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
48501 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48502     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
48503       : memoryTypeBits( memoryTypeBits_ )
48504     {}
48505 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48506     MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48507     {
48508       memcpy( &pNext, &rhs.pNext, sizeof( MemoryWin32HandlePropertiesKHR ) - offsetof( MemoryWin32HandlePropertiesKHR, pNext ) );
48509       return *this;
48510     }
48511 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48512     MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48513     {
48514       *this = rhs;
48515     }
48516 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48517     MemoryWin32HandlePropertiesKHR& operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48518     {
48519       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>(&rhs);
48520       return *this;
48521     }
48522 
48523 
operator VkMemoryWin32HandlePropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48524     operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
48525     {
48526       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
48527     }
48528 
operator VkMemoryWin32HandlePropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48529     operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
48530     {
48531       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
48532     }
48533 
48534 
48535 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48536     auto operator<=>( MemoryWin32HandlePropertiesKHR const& ) const = default;
48537 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48538     bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
48539     {
48540       return ( sType == rhs.sType )
48541           && ( pNext == rhs.pNext )
48542           && ( memoryTypeBits == rhs.memoryTypeBits );
48543     }
48544 
operator !=VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48545     bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
48546     {
48547       return !operator==( rhs );
48548     }
48549 #endif
48550 
48551 
48552 
48553   public:
48554     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
48555     void* pNext = {};
48556     uint32_t memoryTypeBits = {};
48557 
48558   };
48559   static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" );
48560   static_assert( std::is_standard_layout<MemoryWin32HandlePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
48561 
48562   template <>
48563   struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
48564   {
48565     using Type = MemoryWin32HandlePropertiesKHR;
48566   };
48567 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
48568 
48569 #ifdef VK_USE_PLATFORM_METAL_EXT
48570   struct MetalSurfaceCreateInfoEXT
48571   {
48572     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
48573 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48574     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {},
48575                                                     const CAMetalLayer* pLayer_ = {} ) VULKAN_HPP_NOEXCEPT
48576       : flags( flags_ )
48577       , pLayer( pLayer_ )
48578     {}
48579 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48580     MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48581     {
48582       memcpy( &pNext, &rhs.pNext, sizeof( MetalSurfaceCreateInfoEXT ) - offsetof( MetalSurfaceCreateInfoEXT, pNext ) );
48583       return *this;
48584     }
48585 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48586     MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48587     {
48588       *this = rhs;
48589     }
48590 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48591     MetalSurfaceCreateInfoEXT& operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48592     {
48593       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>(&rhs);
48594       return *this;
48595     }
48596 
setPNextVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48597     MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
48598     {
48599       pNext = pNext_;
48600       return *this;
48601     }
48602 
setFlagsVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48603     MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
48604     {
48605       flags = flags_;
48606       return *this;
48607     }
48608 
setPLayerVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48609     MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT
48610     {
48611       pLayer = pLayer_;
48612       return *this;
48613     }
48614 
48615 
operator VkMetalSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48616     operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
48617     {
48618       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
48619     }
48620 
operator VkMetalSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48621     operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
48622     {
48623       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
48624     }
48625 
48626 
48627 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48628     auto operator<=>( MetalSurfaceCreateInfoEXT const& ) const = default;
48629 #else
operator ==VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48630     bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48631     {
48632       return ( sType == rhs.sType )
48633           && ( pNext == rhs.pNext )
48634           && ( flags == rhs.flags )
48635           && ( pLayer == rhs.pLayer );
48636     }
48637 
operator !=VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48638     bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48639     {
48640       return !operator==( rhs );
48641     }
48642 #endif
48643 
48644 
48645 
48646   public:
48647     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
48648     const void* pNext = {};
48649     VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
48650     const CAMetalLayer* pLayer = {};
48651 
48652   };
48653   static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
48654   static_assert( std::is_standard_layout<MetalSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
48655 
48656   template <>
48657   struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
48658   {
48659     using Type = MetalSurfaceCreateInfoEXT;
48660   };
48661 #endif /*VK_USE_PLATFORM_METAL_EXT*/
48662 
48663   struct MultisamplePropertiesEXT
48664   {
48665     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
48666 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48667     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {} ) VULKAN_HPP_NOEXCEPT
48668       : maxSampleLocationGridSize( maxSampleLocationGridSize_ )
48669     {}
48670 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48671     MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48672     {
48673       memcpy( &pNext, &rhs.pNext, sizeof( MultisamplePropertiesEXT ) - offsetof( MultisamplePropertiesEXT, pNext ) );
48674       return *this;
48675     }
48676 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48677     MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48678     {
48679       *this = rhs;
48680     }
48681 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48682     MultisamplePropertiesEXT& operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48683     {
48684       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>(&rhs);
48685       return *this;
48686     }
48687 
48688 
operator VkMultisamplePropertiesEXT const&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48689     operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
48690     {
48691       return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
48692     }
48693 
operator VkMultisamplePropertiesEXT&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48694     operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
48695     {
48696       return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
48697     }
48698 
48699 
48700 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48701     auto operator<=>( MultisamplePropertiesEXT const& ) const = default;
48702 #else
operator ==VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48703     bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48704     {
48705       return ( sType == rhs.sType )
48706           && ( pNext == rhs.pNext )
48707           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
48708     }
48709 
operator !=VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT48710     bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48711     {
48712       return !operator==( rhs );
48713     }
48714 #endif
48715 
48716 
48717 
48718   public:
48719     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
48720     void* pNext = {};
48721     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
48722 
48723   };
48724   static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" );
48725   static_assert( std::is_standard_layout<MultisamplePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
48726 
48727   template <>
48728   struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
48729   {
48730     using Type = MultisamplePropertiesEXT;
48731   };
48732 
48733   struct PastPresentationTimingGOOGLE
48734   {
48735 
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE48736     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( uint32_t presentID_ = {},
48737                                                        uint64_t desiredPresentTime_ = {},
48738                                                        uint64_t actualPresentTime_ = {},
48739                                                        uint64_t earliestPresentTime_ = {},
48740                                                        uint64_t presentMargin_ = {} ) VULKAN_HPP_NOEXCEPT
48741       : presentID( presentID_ )
48742       , desiredPresentTime( desiredPresentTime_ )
48743       , actualPresentTime( actualPresentTime_ )
48744       , earliestPresentTime( earliestPresentTime_ )
48745       , presentMargin( presentMargin_ )
48746     {}
48747 
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE48748     PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
48749     {
48750       *this = rhs;
48751     }
48752 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE48753     PastPresentationTimingGOOGLE& operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
48754     {
48755       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>(&rhs);
48756       return *this;
48757     }
48758 
48759 
operator VkPastPresentationTimingGOOGLE const&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE48760     operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT
48761     {
48762       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
48763     }
48764 
operator VkPastPresentationTimingGOOGLE&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE48765     operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
48766     {
48767       return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
48768     }
48769 
48770 
48771 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48772     auto operator<=>( PastPresentationTimingGOOGLE const& ) const = default;
48773 #else
operator ==VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE48774     bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
48775     {
48776       return ( presentID == rhs.presentID )
48777           && ( desiredPresentTime == rhs.desiredPresentTime )
48778           && ( actualPresentTime == rhs.actualPresentTime )
48779           && ( earliestPresentTime == rhs.earliestPresentTime )
48780           && ( presentMargin == rhs.presentMargin );
48781     }
48782 
operator !=VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE48783     bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
48784     {
48785       return !operator==( rhs );
48786     }
48787 #endif
48788 
48789 
48790 
48791   public:
48792     uint32_t presentID = {};
48793     uint64_t desiredPresentTime = {};
48794     uint64_t actualPresentTime = {};
48795     uint64_t earliestPresentTime = {};
48796     uint64_t presentMargin = {};
48797 
48798   };
48799   static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" );
48800   static_assert( std::is_standard_layout<PastPresentationTimingGOOGLE>::value, "struct wrapper is not a standard layout!" );
48801 
48802   struct PerformanceConfigurationAcquireInfoINTEL
48803   {
48804     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
48805 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48806     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated ) VULKAN_HPP_NOEXCEPT
48807       : type( type_ )
48808     {}
48809 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48810     PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
48811     {
48812       memcpy( &pNext, &rhs.pNext, sizeof( PerformanceConfigurationAcquireInfoINTEL ) - offsetof( PerformanceConfigurationAcquireInfoINTEL, pNext ) );
48813       return *this;
48814     }
48815 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48816     PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
48817     {
48818       *this = rhs;
48819     }
48820 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48821     PerformanceConfigurationAcquireInfoINTEL& operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
48822     {
48823       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>(&rhs);
48824       return *this;
48825     }
48826 
setPNextVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48827     PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
48828     {
48829       pNext = pNext_;
48830       return *this;
48831     }
48832 
setTypeVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48833     PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
48834     {
48835       type = type_;
48836       return *this;
48837     }
48838 
48839 
operator VkPerformanceConfigurationAcquireInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48840     operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
48841     {
48842       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
48843     }
48844 
operator VkPerformanceConfigurationAcquireInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48845     operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
48846     {
48847       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
48848     }
48849 
48850 
48851 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48852     auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const& ) const = default;
48853 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48854     bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
48855     {
48856       return ( sType == rhs.sType )
48857           && ( pNext == rhs.pNext )
48858           && ( type == rhs.type );
48859     }
48860 
operator !=VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL48861     bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
48862     {
48863       return !operator==( rhs );
48864     }
48865 #endif
48866 
48867 
48868 
48869   public:
48870     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
48871     const void* pNext = {};
48872     VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
48873 
48874   };
48875   static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" );
48876   static_assert( std::is_standard_layout<PerformanceConfigurationAcquireInfoINTEL>::value, "struct wrapper is not a standard layout!" );
48877 
48878   template <>
48879   struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
48880   {
48881     using Type = PerformanceConfigurationAcquireInfoINTEL;
48882   };
48883 
48884   struct PerformanceCounterDescriptionKHR
48885   {
48886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
48887 
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48888     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {},
48889                                                               std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {},
48890                                                               std::array<char,VK_MAX_DESCRIPTION_SIZE> const& category_ = {},
48891                                                               std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {} ) VULKAN_HPP_NOEXCEPT
48892       : flags( flags_ )
48893       , name( name_ )
48894       , category( category_ )
48895       , description( description_ )
48896     {}
48897 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48898     PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48899     {
48900       memcpy( &pNext, &rhs.pNext, sizeof( PerformanceCounterDescriptionKHR ) - offsetof( PerformanceCounterDescriptionKHR, pNext ) );
48901       return *this;
48902     }
48903 
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48904     PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48905     {
48906       *this = rhs;
48907     }
48908 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48909     PerformanceCounterDescriptionKHR& operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48910     {
48911       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>(&rhs);
48912       return *this;
48913     }
48914 
48915 
operator VkPerformanceCounterDescriptionKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48916     operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT
48917     {
48918       return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR*>( this );
48919     }
48920 
operator VkPerformanceCounterDescriptionKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48921     operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
48922     {
48923       return *reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( this );
48924     }
48925 
48926 
48927 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48928     auto operator<=>( PerformanceCounterDescriptionKHR const& ) const = default;
48929 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48930     bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
48931     {
48932       return ( sType == rhs.sType )
48933           && ( pNext == rhs.pNext )
48934           && ( flags == rhs.flags )
48935           && ( name == rhs.name )
48936           && ( category == rhs.category )
48937           && ( description == rhs.description );
48938     }
48939 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR48940     bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
48941     {
48942       return !operator==( rhs );
48943     }
48944 #endif
48945 
48946 
48947 
48948   public:
48949     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
48950     const void* pNext = {};
48951     VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
48952     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
48953     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
48954     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
48955 
48956   };
48957   static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" );
48958   static_assert( std::is_standard_layout<PerformanceCounterDescriptionKHR>::value, "struct wrapper is not a standard layout!" );
48959 
48960   template <>
48961   struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
48962   {
48963     using Type = PerformanceCounterDescriptionKHR;
48964   };
48965 
48966   struct PerformanceCounterKHR
48967   {
48968     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
48969 
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR48970     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric,
48971                                                    VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer,
48972                                                    VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32,
48973                                                    std::array<uint8_t,VK_UUID_SIZE> const& uuid_ = {} ) VULKAN_HPP_NOEXCEPT
48974       : unit( unit_ )
48975       , scope( scope_ )
48976       , storage( storage_ )
48977       , uuid( uuid_ )
48978     {}
48979 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR48980     PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48981     {
48982       memcpy( &pNext, &rhs.pNext, sizeof( PerformanceCounterKHR ) - offsetof( PerformanceCounterKHR, pNext ) );
48983       return *this;
48984     }
48985 
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR48986     PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48987     {
48988       *this = rhs;
48989     }
48990 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR48991     PerformanceCounterKHR& operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48992     {
48993       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>(&rhs);
48994       return *this;
48995     }
48996 
48997 
operator VkPerformanceCounterKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR48998     operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT
48999     {
49000       return *reinterpret_cast<const VkPerformanceCounterKHR*>( this );
49001     }
49002 
operator VkPerformanceCounterKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR49003     operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
49004     {
49005       return *reinterpret_cast<VkPerformanceCounterKHR*>( this );
49006     }
49007 
49008 
49009 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49010     auto operator<=>( PerformanceCounterKHR const& ) const = default;
49011 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterKHR49012     bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49013     {
49014       return ( sType == rhs.sType )
49015           && ( pNext == rhs.pNext )
49016           && ( unit == rhs.unit )
49017           && ( scope == rhs.scope )
49018           && ( storage == rhs.storage )
49019           && ( uuid == rhs.uuid );
49020     }
49021 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterKHR49022     bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49023     {
49024       return !operator==( rhs );
49025     }
49026 #endif
49027 
49028 
49029 
49030   public:
49031     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
49032     const void* pNext = {};
49033     VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
49034     VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
49035     VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
49036     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
49037 
49038   };
49039   static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" );
49040   static_assert( std::is_standard_layout<PerformanceCounterKHR>::value, "struct wrapper is not a standard layout!" );
49041 
49042   template <>
49043   struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
49044   {
49045     using Type = PerformanceCounterKHR;
49046   };
49047 
49048   union PerformanceCounterResultKHR
49049   {
PerformanceCounterResultKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)49050     PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const& rhs ) VULKAN_HPP_NOEXCEPT
49051     {
49052       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
49053     }
49054 
PerformanceCounterResultKHR(int32_t int32_={} )49055     PerformanceCounterResultKHR( int32_t int32_ = {} )
49056       : int32( int32_ )
49057     {}
49058 
PerformanceCounterResultKHR(int64_t int64_)49059     PerformanceCounterResultKHR( int64_t int64_ )
49060       : int64( int64_ )
49061     {}
49062 
PerformanceCounterResultKHR(uint32_t uint32_)49063     PerformanceCounterResultKHR( uint32_t uint32_ )
49064       : uint32( uint32_ )
49065     {}
49066 
PerformanceCounterResultKHR(uint64_t uint64_)49067     PerformanceCounterResultKHR( uint64_t uint64_ )
49068       : uint64( uint64_ )
49069     {}
49070 
PerformanceCounterResultKHR(float float32_)49071     PerformanceCounterResultKHR( float float32_ )
49072       : float32( float32_ )
49073     {}
49074 
PerformanceCounterResultKHR(double float64_)49075     PerformanceCounterResultKHR( double float64_ )
49076       : float64( float64_ )
49077     {}
49078 
setInt32(int32_t int32_)49079     PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
49080     {
49081       int32 = int32_;
49082       return *this;
49083     }
49084 
setInt64(int64_t int64_)49085     PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
49086     {
49087       int64 = int64_;
49088       return *this;
49089     }
49090 
setUint32(uint32_t uint32_)49091     PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
49092     {
49093       uint32 = uint32_;
49094       return *this;
49095     }
49096 
setUint64(uint64_t uint64_)49097     PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
49098     {
49099       uint64 = uint64_;
49100       return *this;
49101     }
49102 
setFloat32(float float32_)49103     PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
49104     {
49105       float32 = float32_;
49106       return *this;
49107     }
49108 
setFloat64(double float64_)49109     PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
49110     {
49111       float64 = float64_;
49112       return *this;
49113     }
49114 
operator =(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)49115     VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49116     {
49117       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
49118       return *this;
49119     }
49120 
operator VkPerformanceCounterResultKHR const&() const49121     operator VkPerformanceCounterResultKHR const&() const
49122     {
49123       return *reinterpret_cast<const VkPerformanceCounterResultKHR*>(this);
49124     }
49125 
operator VkPerformanceCounterResultKHR&()49126     operator VkPerformanceCounterResultKHR &()
49127     {
49128       return *reinterpret_cast<VkPerformanceCounterResultKHR*>(this);
49129     }
49130 
49131     int32_t int32;
49132     int64_t int64;
49133     uint32_t uint32;
49134     uint64_t uint64;
49135     float float32;
49136     double float64;
49137   };
49138 
49139   struct PerformanceMarkerInfoINTEL
49140   {
49141     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
49142 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49143     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( uint64_t marker_ = {} ) VULKAN_HPP_NOEXCEPT
49144       : marker( marker_ )
49145     {}
49146 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49147     PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49148     {
49149       memcpy( &pNext, &rhs.pNext, sizeof( PerformanceMarkerInfoINTEL ) - offsetof( PerformanceMarkerInfoINTEL, pNext ) );
49150       return *this;
49151     }
49152 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49153     PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49154     {
49155       *this = rhs;
49156     }
49157 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49158     PerformanceMarkerInfoINTEL& operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49159     {
49160       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>(&rhs);
49161       return *this;
49162     }
49163 
setPNextVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49164     PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
49165     {
49166       pNext = pNext_;
49167       return *this;
49168     }
49169 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49170     PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
49171     {
49172       marker = marker_;
49173       return *this;
49174     }
49175 
49176 
operator VkPerformanceMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49177     operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
49178     {
49179       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
49180     }
49181 
operator VkPerformanceMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49182     operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
49183     {
49184       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
49185     }
49186 
49187 
49188 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49189     auto operator<=>( PerformanceMarkerInfoINTEL const& ) const = default;
49190 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49191     bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
49192     {
49193       return ( sType == rhs.sType )
49194           && ( pNext == rhs.pNext )
49195           && ( marker == rhs.marker );
49196     }
49197 
operator !=VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL49198     bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
49199     {
49200       return !operator==( rhs );
49201     }
49202 #endif
49203 
49204 
49205 
49206   public:
49207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
49208     const void* pNext = {};
49209     uint64_t marker = {};
49210 
49211   };
49212   static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" );
49213   static_assert( std::is_standard_layout<PerformanceMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
49214 
49215   template <>
49216   struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
49217   {
49218     using Type = PerformanceMarkerInfoINTEL;
49219   };
49220 
49221   struct PerformanceOverrideInfoINTEL
49222   {
49223     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
49224 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49225     VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware,
49226                                                        VULKAN_HPP_NAMESPACE::Bool32 enable_ = {},
49227                                                        uint64_t parameter_ = {} ) VULKAN_HPP_NOEXCEPT
49228       : type( type_ )
49229       , enable( enable_ )
49230       , parameter( parameter_ )
49231     {}
49232 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49233     PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49234     {
49235       memcpy( &pNext, &rhs.pNext, sizeof( PerformanceOverrideInfoINTEL ) - offsetof( PerformanceOverrideInfoINTEL, pNext ) );
49236       return *this;
49237     }
49238 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49239     PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49240     {
49241       *this = rhs;
49242     }
49243 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49244     PerformanceOverrideInfoINTEL& operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49245     {
49246       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>(&rhs);
49247       return *this;
49248     }
49249 
setPNextVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49250     PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
49251     {
49252       pNext = pNext_;
49253       return *this;
49254     }
49255 
setTypeVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49256     PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
49257     {
49258       type = type_;
49259       return *this;
49260     }
49261 
setEnableVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49262     PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
49263     {
49264       enable = enable_;
49265       return *this;
49266     }
49267 
setParameterVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49268     PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
49269     {
49270       parameter = parameter_;
49271       return *this;
49272     }
49273 
49274 
operator VkPerformanceOverrideInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49275     operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
49276     {
49277       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
49278     }
49279 
operator VkPerformanceOverrideInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49280     operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
49281     {
49282       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
49283     }
49284 
49285 
49286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49287     auto operator<=>( PerformanceOverrideInfoINTEL const& ) const = default;
49288 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49289     bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
49290     {
49291       return ( sType == rhs.sType )
49292           && ( pNext == rhs.pNext )
49293           && ( type == rhs.type )
49294           && ( enable == rhs.enable )
49295           && ( parameter == rhs.parameter );
49296     }
49297 
operator !=VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL49298     bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
49299     {
49300       return !operator==( rhs );
49301     }
49302 #endif
49303 
49304 
49305 
49306   public:
49307     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
49308     const void* pNext = {};
49309     VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
49310     VULKAN_HPP_NAMESPACE::Bool32 enable = {};
49311     uint64_t parameter = {};
49312 
49313   };
49314   static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" );
49315   static_assert( std::is_standard_layout<PerformanceOverrideInfoINTEL>::value, "struct wrapper is not a standard layout!" );
49316 
49317   template <>
49318   struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
49319   {
49320     using Type = PerformanceOverrideInfoINTEL;
49321   };
49322 
49323   struct PerformanceQuerySubmitInfoKHR
49324   {
49325     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
49326 
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49327     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( uint32_t counterPassIndex_ = {} ) VULKAN_HPP_NOEXCEPT
49328       : counterPassIndex( counterPassIndex_ )
49329     {}
49330 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49331     PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49332     {
49333       memcpy( &pNext, &rhs.pNext, sizeof( PerformanceQuerySubmitInfoKHR ) - offsetof( PerformanceQuerySubmitInfoKHR, pNext ) );
49334       return *this;
49335     }
49336 
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49337     PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49338     {
49339       *this = rhs;
49340     }
49341 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49342     PerformanceQuerySubmitInfoKHR& operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49343     {
49344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>(&rhs);
49345       return *this;
49346     }
49347 
setPNextVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49348     PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
49349     {
49350       pNext = pNext_;
49351       return *this;
49352     }
49353 
setCounterPassIndexVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49354     PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
49355     {
49356       counterPassIndex = counterPassIndex_;
49357       return *this;
49358     }
49359 
49360 
operator VkPerformanceQuerySubmitInfoKHR const&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49361     operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
49362     {
49363       return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>( this );
49364     }
49365 
operator VkPerformanceQuerySubmitInfoKHR&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49366     operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
49367     {
49368       return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>( this );
49369     }
49370 
49371 
49372 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49373     auto operator<=>( PerformanceQuerySubmitInfoKHR const& ) const = default;
49374 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49375     bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49376     {
49377       return ( sType == rhs.sType )
49378           && ( pNext == rhs.pNext )
49379           && ( counterPassIndex == rhs.counterPassIndex );
49380     }
49381 
operator !=VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR49382     bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49383     {
49384       return !operator==( rhs );
49385     }
49386 #endif
49387 
49388 
49389 
49390   public:
49391     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
49392     const void* pNext = {};
49393     uint32_t counterPassIndex = {};
49394 
49395   };
49396   static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" );
49397   static_assert( std::is_standard_layout<PerformanceQuerySubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
49398 
49399   template <>
49400   struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
49401   {
49402     using Type = PerformanceQuerySubmitInfoKHR;
49403   };
49404 
49405   struct PerformanceStreamMarkerInfoINTEL
49406   {
49407     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
49408 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49409     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = {} ) VULKAN_HPP_NOEXCEPT
49410       : marker( marker_ )
49411     {}
49412 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49413     PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49414     {
49415       memcpy( &pNext, &rhs.pNext, sizeof( PerformanceStreamMarkerInfoINTEL ) - offsetof( PerformanceStreamMarkerInfoINTEL, pNext ) );
49416       return *this;
49417     }
49418 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49419     PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49420     {
49421       *this = rhs;
49422     }
49423 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49424     PerformanceStreamMarkerInfoINTEL& operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49425     {
49426       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>(&rhs);
49427       return *this;
49428     }
49429 
setPNextVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49430     PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
49431     {
49432       pNext = pNext_;
49433       return *this;
49434     }
49435 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49436     PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
49437     {
49438       marker = marker_;
49439       return *this;
49440     }
49441 
49442 
operator VkPerformanceStreamMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49443     operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
49444     {
49445       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
49446     }
49447 
operator VkPerformanceStreamMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49448     operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
49449     {
49450       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
49451     }
49452 
49453 
49454 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49455     auto operator<=>( PerformanceStreamMarkerInfoINTEL const& ) const = default;
49456 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49457     bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
49458     {
49459       return ( sType == rhs.sType )
49460           && ( pNext == rhs.pNext )
49461           && ( marker == rhs.marker );
49462     }
49463 
operator !=VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL49464     bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
49465     {
49466       return !operator==( rhs );
49467     }
49468 #endif
49469 
49470 
49471 
49472   public:
49473     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
49474     const void* pNext = {};
49475     uint32_t marker = {};
49476 
49477   };
49478   static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" );
49479   static_assert( std::is_standard_layout<PerformanceStreamMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
49480 
49481   template <>
49482   struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
49483   {
49484     using Type = PerformanceStreamMarkerInfoINTEL;
49485   };
49486 
49487   union PerformanceValueDataINTEL
49488   {
PerformanceValueDataINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)49489     PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const& rhs ) VULKAN_HPP_NOEXCEPT
49490     {
49491       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
49492     }
49493 
PerformanceValueDataINTEL(uint32_t value32_={} )49494     PerformanceValueDataINTEL( uint32_t value32_ = {} )
49495       : value32( value32_ )
49496     {}
49497 
PerformanceValueDataINTEL(uint64_t value64_)49498     PerformanceValueDataINTEL( uint64_t value64_ )
49499       : value64( value64_ )
49500     {}
49501 
PerformanceValueDataINTEL(float valueFloat_)49502     PerformanceValueDataINTEL( float valueFloat_ )
49503       : valueFloat( valueFloat_ )
49504     {}
49505 
PerformanceValueDataINTEL(const char * valueString_)49506     PerformanceValueDataINTEL( const char* valueString_ )
49507       : valueString( valueString_ )
49508     {}
49509 
setValue32(uint32_t value32_)49510     PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
49511     {
49512       value32 = value32_;
49513       return *this;
49514     }
49515 
setValue64(uint64_t value64_)49516     PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
49517     {
49518       value64 = value64_;
49519       return *this;
49520     }
49521 
setValueFloat(float valueFloat_)49522     PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
49523     {
49524       valueFloat = valueFloat_;
49525       return *this;
49526     }
49527 
setValueBool(VULKAN_HPP_NAMESPACE::Bool32 valueBool_)49528     PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
49529     {
49530       valueBool = valueBool_;
49531       return *this;
49532     }
49533 
setValueString(const char * valueString_)49534     PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT
49535     {
49536       valueString = valueString_;
49537       return *this;
49538     }
49539 
operator =(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)49540     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49541     {
49542       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
49543       return *this;
49544     }
49545 
operator VkPerformanceValueDataINTEL const&() const49546     operator VkPerformanceValueDataINTEL const&() const
49547     {
49548       return *reinterpret_cast<const VkPerformanceValueDataINTEL*>(this);
49549     }
49550 
operator VkPerformanceValueDataINTEL&()49551     operator VkPerformanceValueDataINTEL &()
49552     {
49553       return *reinterpret_cast<VkPerformanceValueDataINTEL*>(this);
49554     }
49555 
49556 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
49557     uint32_t value32;
49558     uint64_t value64;
49559     float valueFloat;
49560     VULKAN_HPP_NAMESPACE::Bool32 valueBool;
49561     const char* valueString;
49562 #else
49563     uint32_t value32;
49564     uint64_t value64;
49565     float valueFloat;
49566     VkBool32 valueBool;
49567     const char* valueString;
49568 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
49569   };
49570 
49571   struct PerformanceValueINTEL
49572   {
49573 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL49574     PerformanceValueINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32,
49575                            VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {} ) VULKAN_HPP_NOEXCEPT
49576       : type( type_ )
49577       , data( data_ )
49578     {}
49579 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL49580     PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49581     {
49582       *this = rhs;
49583     }
49584 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL49585     PerformanceValueINTEL& operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
49586     {
49587       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>(&rhs);
49588       return *this;
49589     }
49590 
setTypeVULKAN_HPP_NAMESPACE::PerformanceValueINTEL49591     PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
49592     {
49593       type = type_;
49594       return *this;
49595     }
49596 
setDataVULKAN_HPP_NAMESPACE::PerformanceValueINTEL49597     PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
49598     {
49599       data = data_;
49600       return *this;
49601     }
49602 
49603 
operator VkPerformanceValueINTEL const&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL49604     operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT
49605     {
49606       return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
49607     }
49608 
operator VkPerformanceValueINTEL&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL49609     operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
49610     {
49611       return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
49612     }
49613 
49614 
49615 
49616 
49617   public:
49618     VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
49619     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
49620 
49621   };
49622   static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" );
49623   static_assert( std::is_standard_layout<PerformanceValueINTEL>::value, "struct wrapper is not a standard layout!" );
49624 
49625   struct PhysicalDevice16BitStorageFeatures
49626   {
49627     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
49628 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49629     VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {},
49630                                                              VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {},
49631                                                              VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {},
49632                                                              VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {} ) VULKAN_HPP_NOEXCEPT
49633       : storageBuffer16BitAccess( storageBuffer16BitAccess_ )
49634       , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
49635       , storagePushConstant16( storagePushConstant16_ )
49636       , storageInputOutput16( storageInputOutput16_ )
49637     {}
49638 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49639     PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
49640     {
49641       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevice16BitStorageFeatures ) - offsetof( PhysicalDevice16BitStorageFeatures, pNext ) );
49642       return *this;
49643     }
49644 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49645     PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
49646     {
49647       *this = rhs;
49648     }
49649 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49650     PhysicalDevice16BitStorageFeatures& operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
49651     {
49652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>(&rhs);
49653       return *this;
49654     }
49655 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49656     PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
49657     {
49658       pNext = pNext_;
49659       return *this;
49660     }
49661 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49662     PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
49663     {
49664       storageBuffer16BitAccess = storageBuffer16BitAccess_;
49665       return *this;
49666     }
49667 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49668     PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
49669     {
49670       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
49671       return *this;
49672     }
49673 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49674     PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
49675     {
49676       storagePushConstant16 = storagePushConstant16_;
49677       return *this;
49678     }
49679 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49680     PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
49681     {
49682       storageInputOutput16 = storageInputOutput16_;
49683       return *this;
49684     }
49685 
49686 
operator VkPhysicalDevice16BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49687     operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
49688     {
49689       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
49690     }
49691 
operator VkPhysicalDevice16BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49692     operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
49693     {
49694       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
49695     }
49696 
49697 
49698 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49699     auto operator<=>( PhysicalDevice16BitStorageFeatures const& ) const = default;
49700 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49701     bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
49702     {
49703       return ( sType == rhs.sType )
49704           && ( pNext == rhs.pNext )
49705           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
49706           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
49707           && ( storagePushConstant16 == rhs.storagePushConstant16 )
49708           && ( storageInputOutput16 == rhs.storageInputOutput16 );
49709     }
49710 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures49711     bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
49712     {
49713       return !operator==( rhs );
49714     }
49715 #endif
49716 
49717 
49718 
49719   public:
49720     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
49721     void* pNext = {};
49722     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
49723     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
49724     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
49725     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
49726 
49727   };
49728   static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" );
49729   static_assert( std::is_standard_layout<PhysicalDevice16BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
49730 
49731   template <>
49732   struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
49733   {
49734     using Type = PhysicalDevice16BitStorageFeatures;
49735   };
49736 
49737   struct PhysicalDevice8BitStorageFeatures
49738   {
49739     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
49740 
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49741     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {},
49742                                                             VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {},
49743                                                             VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {} ) VULKAN_HPP_NOEXCEPT
49744       : storageBuffer8BitAccess( storageBuffer8BitAccess_ )
49745       , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
49746       , storagePushConstant8( storagePushConstant8_ )
49747     {}
49748 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49749     PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
49750     {
49751       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevice8BitStorageFeatures ) - offsetof( PhysicalDevice8BitStorageFeatures, pNext ) );
49752       return *this;
49753     }
49754 
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49755     PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
49756     {
49757       *this = rhs;
49758     }
49759 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49760     PhysicalDevice8BitStorageFeatures& operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
49761     {
49762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>(&rhs);
49763       return *this;
49764     }
49765 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49766     PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
49767     {
49768       pNext = pNext_;
49769       return *this;
49770     }
49771 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49772     PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
49773     {
49774       storageBuffer8BitAccess = storageBuffer8BitAccess_;
49775       return *this;
49776     }
49777 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49778     PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
49779     {
49780       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
49781       return *this;
49782     }
49783 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49784     PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
49785     {
49786       storagePushConstant8 = storagePushConstant8_;
49787       return *this;
49788     }
49789 
49790 
operator VkPhysicalDevice8BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49791     operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
49792     {
49793       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>( this );
49794     }
49795 
operator VkPhysicalDevice8BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49796     operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
49797     {
49798       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>( this );
49799     }
49800 
49801 
49802 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49803     auto operator<=>( PhysicalDevice8BitStorageFeatures const& ) const = default;
49804 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49805     bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
49806     {
49807       return ( sType == rhs.sType )
49808           && ( pNext == rhs.pNext )
49809           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
49810           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
49811           && ( storagePushConstant8 == rhs.storagePushConstant8 );
49812     }
49813 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures49814     bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
49815     {
49816       return !operator==( rhs );
49817     }
49818 #endif
49819 
49820 
49821 
49822   public:
49823     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
49824     void* pNext = {};
49825     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
49826     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
49827     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
49828 
49829   };
49830   static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" );
49831   static_assert( std::is_standard_layout<PhysicalDevice8BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
49832 
49833   template <>
49834   struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
49835   {
49836     using Type = PhysicalDevice8BitStorageFeatures;
49837   };
49838 
49839   struct PhysicalDeviceASTCDecodeFeaturesEXT
49840   {
49841     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
49842 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49843     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {} ) VULKAN_HPP_NOEXCEPT
49844       : decodeModeSharedExponent( decodeModeSharedExponent_ )
49845     {}
49846 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49847     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49848     {
49849       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) - offsetof( PhysicalDeviceASTCDecodeFeaturesEXT, pNext ) );
49850       return *this;
49851     }
49852 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49853     PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49854     {
49855       *this = rhs;
49856     }
49857 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49858     PhysicalDeviceASTCDecodeFeaturesEXT& operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49859     {
49860       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>(&rhs);
49861       return *this;
49862     }
49863 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49864     PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
49865     {
49866       pNext = pNext_;
49867       return *this;
49868     }
49869 
setDecodeModeSharedExponentVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49870     PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
49871     {
49872       decodeModeSharedExponent = decodeModeSharedExponent_;
49873       return *this;
49874     }
49875 
49876 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49877     operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
49878     {
49879       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
49880     }
49881 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49882     operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
49883     {
49884       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
49885     }
49886 
49887 
49888 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49889     auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const& ) const = default;
49890 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49891     bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
49892     {
49893       return ( sType == rhs.sType )
49894           && ( pNext == rhs.pNext )
49895           && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
49896     }
49897 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT49898     bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
49899     {
49900       return !operator==( rhs );
49901     }
49902 #endif
49903 
49904 
49905 
49906   public:
49907     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
49908     void* pNext = {};
49909     VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
49910 
49911   };
49912   static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" );
49913   static_assert( std::is_standard_layout<PhysicalDeviceASTCDecodeFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
49914 
49915   template <>
49916   struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
49917   {
49918     using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
49919   };
49920 
49921   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
49922   {
49923     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
49924 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49925     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {} ) VULKAN_HPP_NOEXCEPT
49926       : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
49927     {}
49928 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49929     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49930     {
49931       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) - offsetof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext ) );
49932       return *this;
49933     }
49934 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49935     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49936     {
49937       *this = rhs;
49938     }
49939 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49940     PhysicalDeviceBlendOperationAdvancedFeaturesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49941     {
49942       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>(&rhs);
49943       return *this;
49944     }
49945 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49946     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
49947     {
49948       pNext = pNext_;
49949       return *this;
49950     }
49951 
setAdvancedBlendCoherentOperationsVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49952     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
49953     {
49954       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
49955       return *this;
49956     }
49957 
49958 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49959     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
49960     {
49961       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
49962     }
49963 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49964     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
49965     {
49966       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
49967     }
49968 
49969 
49970 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49971     auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& ) const = default;
49972 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49973     bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
49974     {
49975       return ( sType == rhs.sType )
49976           && ( pNext == rhs.pNext )
49977           && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
49978     }
49979 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT49980     bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
49981     {
49982       return !operator==( rhs );
49983     }
49984 #endif
49985 
49986 
49987 
49988   public:
49989     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
49990     void* pNext = {};
49991     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
49992 
49993   };
49994   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" );
49995   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
49996 
49997   template <>
49998   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
49999   {
50000     using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
50001   };
50002 
50003   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
50004   {
50005     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
50006 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50007     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( uint32_t advancedBlendMaxColorAttachments_ = {},
50008                                                                             VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {},
50009                                                                             VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {},
50010                                                                             VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {},
50011                                                                             VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {},
50012                                                                             VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {} ) VULKAN_HPP_NOEXCEPT
50013       : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ )
50014       , advancedBlendIndependentBlend( advancedBlendIndependentBlend_ )
50015       , advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ )
50016       , advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ )
50017       , advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ )
50018       , advancedBlendAllOperations( advancedBlendAllOperations_ )
50019     {}
50020 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50021     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50022     {
50023       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) - offsetof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext ) );
50024       return *this;
50025     }
50026 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50027     PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50028     {
50029       *this = rhs;
50030     }
50031 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50032     PhysicalDeviceBlendOperationAdvancedPropertiesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50033     {
50034       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>(&rhs);
50035       return *this;
50036     }
50037 
50038 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50039     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
50040     {
50041       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
50042     }
50043 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50044     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
50045     {
50046       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
50047     }
50048 
50049 
50050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50051     auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& ) const = default;
50052 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50053     bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50054     {
50055       return ( sType == rhs.sType )
50056           && ( pNext == rhs.pNext )
50057           && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
50058           && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
50059           && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
50060           && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
50061           && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
50062           && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
50063     }
50064 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT50065     bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50066     {
50067       return !operator==( rhs );
50068     }
50069 #endif
50070 
50071 
50072 
50073   public:
50074     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
50075     void* pNext = {};
50076     uint32_t advancedBlendMaxColorAttachments = {};
50077     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
50078     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
50079     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
50080     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
50081     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
50082 
50083   };
50084   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" );
50085   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
50086 
50087   template <>
50088   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
50089   {
50090     using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
50091   };
50092 
50093   struct PhysicalDeviceBufferDeviceAddressFeatures
50094   {
50095     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
50096 
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50097     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
50098                                                                     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
50099                                                                     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {} ) VULKAN_HPP_NOEXCEPT
50100       : bufferDeviceAddress( bufferDeviceAddress_ )
50101       , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
50102       , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
50103     {}
50104 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50105     PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
50106     {
50107       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) - offsetof( PhysicalDeviceBufferDeviceAddressFeatures, pNext ) );
50108       return *this;
50109     }
50110 
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50111     PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
50112     {
50113       *this = rhs;
50114     }
50115 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50116     PhysicalDeviceBufferDeviceAddressFeatures& operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
50117     {
50118       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>(&rhs);
50119       return *this;
50120     }
50121 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50122     PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50123     {
50124       pNext = pNext_;
50125       return *this;
50126     }
50127 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50128     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
50129     {
50130       bufferDeviceAddress = bufferDeviceAddress_;
50131       return *this;
50132     }
50133 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50134     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
50135     {
50136       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
50137       return *this;
50138     }
50139 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50140     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
50141     {
50142       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
50143       return *this;
50144     }
50145 
50146 
operator VkPhysicalDeviceBufferDeviceAddressFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50147     operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT
50148     {
50149       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
50150     }
50151 
operator VkPhysicalDeviceBufferDeviceAddressFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50152     operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
50153     {
50154       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
50155     }
50156 
50157 
50158 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50159     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const& ) const = default;
50160 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50161     bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
50162     {
50163       return ( sType == rhs.sType )
50164           && ( pNext == rhs.pNext )
50165           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
50166           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
50167           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
50168     }
50169 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures50170     bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
50171     {
50172       return !operator==( rhs );
50173     }
50174 #endif
50175 
50176 
50177 
50178   public:
50179     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
50180     void* pNext = {};
50181     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
50182     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
50183     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
50184 
50185   };
50186   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" );
50187   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeatures>::value, "struct wrapper is not a standard layout!" );
50188 
50189   template <>
50190   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
50191   {
50192     using Type = PhysicalDeviceBufferDeviceAddressFeatures;
50193   };
50194 
50195   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
50196   {
50197     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
50198 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50199     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
50200                                                                        VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
50201                                                                        VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {} ) VULKAN_HPP_NOEXCEPT
50202       : bufferDeviceAddress( bufferDeviceAddress_ )
50203       , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
50204       , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
50205     {}
50206 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50207     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50208     {
50209       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) - offsetof( PhysicalDeviceBufferDeviceAddressFeaturesEXT, pNext ) );
50210       return *this;
50211     }
50212 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50213     PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50214     {
50215       *this = rhs;
50216     }
50217 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50218     PhysicalDeviceBufferDeviceAddressFeaturesEXT& operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50219     {
50220       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>(&rhs);
50221       return *this;
50222     }
50223 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50224     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50225     {
50226       pNext = pNext_;
50227       return *this;
50228     }
50229 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50230     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
50231     {
50232       bufferDeviceAddress = bufferDeviceAddress_;
50233       return *this;
50234     }
50235 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50236     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
50237     {
50238       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
50239       return *this;
50240     }
50241 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50242     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
50243     {
50244       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
50245       return *this;
50246     }
50247 
50248 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50249     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
50250     {
50251       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
50252     }
50253 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50254     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
50255     {
50256       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
50257     }
50258 
50259 
50260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50261     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& ) const = default;
50262 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50263     bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50264     {
50265       return ( sType == rhs.sType )
50266           && ( pNext == rhs.pNext )
50267           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
50268           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
50269           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
50270     }
50271 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT50272     bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50273     {
50274       return !operator==( rhs );
50275     }
50276 #endif
50277 
50278 
50279 
50280   public:
50281     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
50282     void* pNext = {};
50283     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
50284     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
50285     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
50286 
50287   };
50288   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" );
50289   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
50290 
50291   template <>
50292   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
50293   {
50294     using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
50295   };
50296 
50297   struct PhysicalDeviceCoherentMemoryFeaturesAMD
50298   {
50299     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
50300 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50301     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {} ) VULKAN_HPP_NOEXCEPT
50302       : deviceCoherentMemory( deviceCoherentMemory_ )
50303     {}
50304 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50305     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
50306     {
50307       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) - offsetof( PhysicalDeviceCoherentMemoryFeaturesAMD, pNext ) );
50308       return *this;
50309     }
50310 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50311     PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
50312     {
50313       *this = rhs;
50314     }
50315 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50316     PhysicalDeviceCoherentMemoryFeaturesAMD& operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
50317     {
50318       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>(&rhs);
50319       return *this;
50320     }
50321 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50322     PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50323     {
50324       pNext = pNext_;
50325       return *this;
50326     }
50327 
setDeviceCoherentMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50328     PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
50329     {
50330       deviceCoherentMemory = deviceCoherentMemory_;
50331       return *this;
50332     }
50333 
50334 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50335     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT
50336     {
50337       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
50338     }
50339 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50340     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
50341     {
50342       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
50343     }
50344 
50345 
50346 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50347     auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const& ) const = default;
50348 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50349     bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
50350     {
50351       return ( sType == rhs.sType )
50352           && ( pNext == rhs.pNext )
50353           && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
50354     }
50355 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD50356     bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
50357     {
50358       return !operator==( rhs );
50359     }
50360 #endif
50361 
50362 
50363 
50364   public:
50365     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
50366     void* pNext = {};
50367     VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
50368 
50369   };
50370   static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" );
50371   static_assert( std::is_standard_layout<PhysicalDeviceCoherentMemoryFeaturesAMD>::value, "struct wrapper is not a standard layout!" );
50372 
50373   template <>
50374   struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
50375   {
50376     using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
50377   };
50378 
50379   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
50380   {
50381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
50382 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50383     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {},
50384                                                                            VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {} ) VULKAN_HPP_NOEXCEPT
50385       : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ )
50386       , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
50387     {}
50388 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50389     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50390     {
50391       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) - offsetof( PhysicalDeviceComputeShaderDerivativesFeaturesNV, pNext ) );
50392       return *this;
50393     }
50394 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50395     PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50396     {
50397       *this = rhs;
50398     }
50399 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50400     PhysicalDeviceComputeShaderDerivativesFeaturesNV& operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50401     {
50402       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>(&rhs);
50403       return *this;
50404     }
50405 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50406     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50407     {
50408       pNext = pNext_;
50409       return *this;
50410     }
50411 
setComputeDerivativeGroupQuadsVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50412     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
50413     {
50414       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
50415       return *this;
50416     }
50417 
setComputeDerivativeGroupLinearVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50418     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
50419     {
50420       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
50421       return *this;
50422     }
50423 
50424 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50425     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
50426     {
50427       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
50428     }
50429 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50430     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
50431     {
50432       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
50433     }
50434 
50435 
50436 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50437     auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& ) const = default;
50438 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50439     bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50440     {
50441       return ( sType == rhs.sType )
50442           && ( pNext == rhs.pNext )
50443           && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
50444           && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
50445     }
50446 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV50447     bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50448     {
50449       return !operator==( rhs );
50450     }
50451 #endif
50452 
50453 
50454 
50455   public:
50456     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
50457     void* pNext = {};
50458     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
50459     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
50460 
50461   };
50462   static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" );
50463   static_assert( std::is_standard_layout<PhysicalDeviceComputeShaderDerivativesFeaturesNV>::value, "struct wrapper is not a standard layout!" );
50464 
50465   template <>
50466   struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
50467   {
50468     using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
50469   };
50470 
50471   struct PhysicalDeviceConditionalRenderingFeaturesEXT
50472   {
50473     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
50474 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50475     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {},
50476                                                                         VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {} ) VULKAN_HPP_NOEXCEPT
50477       : conditionalRendering( conditionalRendering_ )
50478       , inheritedConditionalRendering( inheritedConditionalRendering_ )
50479     {}
50480 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50481     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50482     {
50483       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) - offsetof( PhysicalDeviceConditionalRenderingFeaturesEXT, pNext ) );
50484       return *this;
50485     }
50486 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50487     PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50488     {
50489       *this = rhs;
50490     }
50491 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50492     PhysicalDeviceConditionalRenderingFeaturesEXT& operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50493     {
50494       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>(&rhs);
50495       return *this;
50496     }
50497 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50498     PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50499     {
50500       pNext = pNext_;
50501       return *this;
50502     }
50503 
setConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50504     PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
50505     {
50506       conditionalRendering = conditionalRendering_;
50507       return *this;
50508     }
50509 
setInheritedConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50510     PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
50511     {
50512       inheritedConditionalRendering = inheritedConditionalRendering_;
50513       return *this;
50514     }
50515 
50516 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50517     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
50518     {
50519       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
50520     }
50521 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50522     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
50523     {
50524       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
50525     }
50526 
50527 
50528 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50529     auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const& ) const = default;
50530 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50531     bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50532     {
50533       return ( sType == rhs.sType )
50534           && ( pNext == rhs.pNext )
50535           && ( conditionalRendering == rhs.conditionalRendering )
50536           && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
50537     }
50538 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT50539     bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50540     {
50541       return !operator==( rhs );
50542     }
50543 #endif
50544 
50545 
50546 
50547   public:
50548     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
50549     void* pNext = {};
50550     VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
50551     VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
50552 
50553   };
50554   static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" );
50555   static_assert( std::is_standard_layout<PhysicalDeviceConditionalRenderingFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
50556 
50557   template <>
50558   struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
50559   {
50560     using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
50561   };
50562 
50563   struct PhysicalDeviceConservativeRasterizationPropertiesEXT
50564   {
50565     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
50566 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50567     VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( float primitiveOverestimationSize_ = {},
50568                                                                                float maxExtraPrimitiveOverestimationSize_ = {},
50569                                                                                float extraPrimitiveOverestimationSizeGranularity_ = {},
50570                                                                                VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {},
50571                                                                                VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {},
50572                                                                                VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {},
50573                                                                                VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {},
50574                                                                                VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {},
50575                                                                                VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {} ) VULKAN_HPP_NOEXCEPT
50576       : primitiveOverestimationSize( primitiveOverestimationSize_ )
50577       , maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ )
50578       , extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ )
50579       , primitiveUnderestimation( primitiveUnderestimation_ )
50580       , conservativePointAndLineRasterization( conservativePointAndLineRasterization_ )
50581       , degenerateTrianglesRasterized( degenerateTrianglesRasterized_ )
50582       , degenerateLinesRasterized( degenerateLinesRasterized_ )
50583       , fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ )
50584       , conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
50585     {}
50586 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50587     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50588     {
50589       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) - offsetof( PhysicalDeviceConservativeRasterizationPropertiesEXT, pNext ) );
50590       return *this;
50591     }
50592 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50593     PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50594     {
50595       *this = rhs;
50596     }
50597 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50598     PhysicalDeviceConservativeRasterizationPropertiesEXT& operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50599     {
50600       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>(&rhs);
50601       return *this;
50602     }
50603 
50604 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50605     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
50606     {
50607       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
50608     }
50609 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50610     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
50611     {
50612       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
50613     }
50614 
50615 
50616 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50617     auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const& ) const = default;
50618 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50619     bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50620     {
50621       return ( sType == rhs.sType )
50622           && ( pNext == rhs.pNext )
50623           && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
50624           && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
50625           && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
50626           && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
50627           && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
50628           && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
50629           && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
50630           && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
50631           && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
50632     }
50633 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT50634     bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
50635     {
50636       return !operator==( rhs );
50637     }
50638 #endif
50639 
50640 
50641 
50642   public:
50643     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
50644     void* pNext = {};
50645     float primitiveOverestimationSize = {};
50646     float maxExtraPrimitiveOverestimationSize = {};
50647     float extraPrimitiveOverestimationSizeGranularity = {};
50648     VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
50649     VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
50650     VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
50651     VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
50652     VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
50653     VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
50654 
50655   };
50656   static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
50657   static_assert( std::is_standard_layout<PhysicalDeviceConservativeRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
50658 
50659   template <>
50660   struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
50661   {
50662     using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
50663   };
50664 
50665   struct PhysicalDeviceCooperativeMatrixFeaturesNV
50666   {
50667     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
50668 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50669     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {},
50670                                                                     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {} ) VULKAN_HPP_NOEXCEPT
50671       : cooperativeMatrix( cooperativeMatrix_ )
50672       , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
50673     {}
50674 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50675     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50676     {
50677       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) - offsetof( PhysicalDeviceCooperativeMatrixFeaturesNV, pNext ) );
50678       return *this;
50679     }
50680 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50681     PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50682     {
50683       *this = rhs;
50684     }
50685 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50686     PhysicalDeviceCooperativeMatrixFeaturesNV& operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50687     {
50688       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>(&rhs);
50689       return *this;
50690     }
50691 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50692     PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50693     {
50694       pNext = pNext_;
50695       return *this;
50696     }
50697 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50698     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
50699     {
50700       cooperativeMatrix = cooperativeMatrix_;
50701       return *this;
50702     }
50703 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50704     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
50705     {
50706       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
50707       return *this;
50708     }
50709 
50710 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50711     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
50712     {
50713       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
50714     }
50715 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50716     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
50717     {
50718       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
50719     }
50720 
50721 
50722 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50723     auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const& ) const = default;
50724 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50725     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50726     {
50727       return ( sType == rhs.sType )
50728           && ( pNext == rhs.pNext )
50729           && ( cooperativeMatrix == rhs.cooperativeMatrix )
50730           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
50731     }
50732 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV50733     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50734     {
50735       return !operator==( rhs );
50736     }
50737 #endif
50738 
50739 
50740 
50741   public:
50742     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
50743     void* pNext = {};
50744     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
50745     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
50746 
50747   };
50748   static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" );
50749   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixFeaturesNV>::value, "struct wrapper is not a standard layout!" );
50750 
50751   template <>
50752   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
50753   {
50754     using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
50755   };
50756 
50757   struct PhysicalDeviceCooperativeMatrixPropertiesNV
50758   {
50759     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
50760 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50761     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {} ) VULKAN_HPP_NOEXCEPT
50762       : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
50763     {}
50764 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50765     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50766     {
50767       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) - offsetof( PhysicalDeviceCooperativeMatrixPropertiesNV, pNext ) );
50768       return *this;
50769     }
50770 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50771     PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50772     {
50773       *this = rhs;
50774     }
50775 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50776     PhysicalDeviceCooperativeMatrixPropertiesNV& operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50777     {
50778       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>(&rhs);
50779       return *this;
50780     }
50781 
50782 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50783     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
50784     {
50785       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
50786     }
50787 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50788     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
50789     {
50790       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
50791     }
50792 
50793 
50794 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50795     auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const& ) const = default;
50796 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50797     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50798     {
50799       return ( sType == rhs.sType )
50800           && ( pNext == rhs.pNext )
50801           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
50802     }
50803 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV50804     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50805     {
50806       return !operator==( rhs );
50807     }
50808 #endif
50809 
50810 
50811 
50812   public:
50813     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
50814     void* pNext = {};
50815     VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
50816 
50817   };
50818   static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
50819   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
50820 
50821   template <>
50822   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
50823   {
50824     using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
50825   };
50826 
50827   struct PhysicalDeviceCornerSampledImageFeaturesNV
50828   {
50829     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
50830 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50831     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {} ) VULKAN_HPP_NOEXCEPT
50832       : cornerSampledImage( cornerSampledImage_ )
50833     {}
50834 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50835     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50836     {
50837       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) - offsetof( PhysicalDeviceCornerSampledImageFeaturesNV, pNext ) );
50838       return *this;
50839     }
50840 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50841     PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50842     {
50843       *this = rhs;
50844     }
50845 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50846     PhysicalDeviceCornerSampledImageFeaturesNV& operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50847     {
50848       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>(&rhs);
50849       return *this;
50850     }
50851 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50852     PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50853     {
50854       pNext = pNext_;
50855       return *this;
50856     }
50857 
setCornerSampledImageVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50858     PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
50859     {
50860       cornerSampledImage = cornerSampledImage_;
50861       return *this;
50862     }
50863 
50864 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50865     operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
50866     {
50867       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
50868     }
50869 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50870     operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
50871     {
50872       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
50873     }
50874 
50875 
50876 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50877     auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const& ) const = default;
50878 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50879     bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50880     {
50881       return ( sType == rhs.sType )
50882           && ( pNext == rhs.pNext )
50883           && ( cornerSampledImage == rhs.cornerSampledImage );
50884     }
50885 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV50886     bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50887     {
50888       return !operator==( rhs );
50889     }
50890 #endif
50891 
50892 
50893 
50894   public:
50895     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
50896     void* pNext = {};
50897     VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
50898 
50899   };
50900   static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" );
50901   static_assert( std::is_standard_layout<PhysicalDeviceCornerSampledImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
50902 
50903   template <>
50904   struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
50905   {
50906     using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
50907   };
50908 
50909   struct PhysicalDeviceCoverageReductionModeFeaturesNV
50910   {
50911     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
50912 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50913     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {} ) VULKAN_HPP_NOEXCEPT
50914       : coverageReductionMode( coverageReductionMode_ )
50915     {}
50916 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50917     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50918     {
50919       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) - offsetof( PhysicalDeviceCoverageReductionModeFeaturesNV, pNext ) );
50920       return *this;
50921     }
50922 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50923     PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50924     {
50925       *this = rhs;
50926     }
50927 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50928     PhysicalDeviceCoverageReductionModeFeaturesNV& operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50929     {
50930       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>(&rhs);
50931       return *this;
50932     }
50933 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50934     PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
50935     {
50936       pNext = pNext_;
50937       return *this;
50938     }
50939 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50940     PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
50941     {
50942       coverageReductionMode = coverageReductionMode_;
50943       return *this;
50944     }
50945 
50946 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50947     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
50948     {
50949       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
50950     }
50951 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50952     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
50953     {
50954       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
50955     }
50956 
50957 
50958 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50959     auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const& ) const = default;
50960 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50961     bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50962     {
50963       return ( sType == rhs.sType )
50964           && ( pNext == rhs.pNext )
50965           && ( coverageReductionMode == rhs.coverageReductionMode );
50966     }
50967 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV50968     bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
50969     {
50970       return !operator==( rhs );
50971     }
50972 #endif
50973 
50974 
50975 
50976   public:
50977     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
50978     void* pNext = {};
50979     VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
50980 
50981   };
50982   static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" );
50983   static_assert( std::is_standard_layout<PhysicalDeviceCoverageReductionModeFeaturesNV>::value, "struct wrapper is not a standard layout!" );
50984 
50985   template <>
50986   struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
50987   {
50988     using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
50989   };
50990 
50991   struct PhysicalDeviceCustomBorderColorFeaturesEXT
50992   {
50993     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
50994 
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT50995     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {},
50996                                                                      VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {} ) VULKAN_HPP_NOEXCEPT
50997       : customBorderColors( customBorderColors_ )
50998       , customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
50999     {}
51000 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51001     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51002     {
51003       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) - offsetof( PhysicalDeviceCustomBorderColorFeaturesEXT, pNext ) );
51004       return *this;
51005     }
51006 
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51007     PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51008     {
51009       *this = rhs;
51010     }
51011 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51012     PhysicalDeviceCustomBorderColorFeaturesEXT& operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51013     {
51014       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>(&rhs);
51015       return *this;
51016     }
51017 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51018     PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51019     {
51020       pNext = pNext_;
51021       return *this;
51022     }
51023 
setCustomBorderColorsVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51024     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
51025     {
51026       customBorderColors = customBorderColors_;
51027       return *this;
51028     }
51029 
setCustomBorderColorWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51030     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
51031     {
51032       customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
51033       return *this;
51034     }
51035 
51036 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51037     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
51038     {
51039       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
51040     }
51041 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51042     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
51043     {
51044       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
51045     }
51046 
51047 
51048 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51049     auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const& ) const = default;
51050 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51051     bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
51052     {
51053       return ( sType == rhs.sType )
51054           && ( pNext == rhs.pNext )
51055           && ( customBorderColors == rhs.customBorderColors )
51056           && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
51057     }
51058 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT51059     bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
51060     {
51061       return !operator==( rhs );
51062     }
51063 #endif
51064 
51065 
51066 
51067   public:
51068     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
51069     void* pNext = {};
51070     VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
51071     VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
51072 
51073   };
51074   static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), "struct and wrapper have different size!" );
51075   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
51076 
51077   template <>
51078   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
51079   {
51080     using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
51081   };
51082 
51083   struct PhysicalDeviceCustomBorderColorPropertiesEXT
51084   {
51085     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
51086 
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51087     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( uint32_t maxCustomBorderColorSamplers_ = {} ) VULKAN_HPP_NOEXCEPT
51088       : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
51089     {}
51090 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51091     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51092     {
51093       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) - offsetof( PhysicalDeviceCustomBorderColorPropertiesEXT, pNext ) );
51094       return *this;
51095     }
51096 
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51097     PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51098     {
51099       *this = rhs;
51100     }
51101 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51102     PhysicalDeviceCustomBorderColorPropertiesEXT& operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51103     {
51104       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>(&rhs);
51105       return *this;
51106     }
51107 
51108 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51109     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
51110     {
51111       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
51112     }
51113 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51114     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
51115     {
51116       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
51117     }
51118 
51119 
51120 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51121     auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const& ) const = default;
51122 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51123     bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
51124     {
51125       return ( sType == rhs.sType )
51126           && ( pNext == rhs.pNext )
51127           && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
51128     }
51129 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT51130     bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
51131     {
51132       return !operator==( rhs );
51133     }
51134 #endif
51135 
51136 
51137 
51138   public:
51139     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
51140     void* pNext = {};
51141     uint32_t maxCustomBorderColorSamplers = {};
51142 
51143   };
51144   static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), "struct and wrapper have different size!" );
51145   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
51146 
51147   template <>
51148   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
51149   {
51150     using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
51151   };
51152 
51153   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
51154   {
51155     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
51156 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51157     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {} ) VULKAN_HPP_NOEXCEPT
51158       : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
51159     {}
51160 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51161     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51162     {
51163       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) - offsetof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, pNext ) );
51164       return *this;
51165     }
51166 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51167     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51168     {
51169       *this = rhs;
51170     }
51171 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51172     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51173     {
51174       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>(&rhs);
51175       return *this;
51176     }
51177 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51178     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51179     {
51180       pNext = pNext_;
51181       return *this;
51182     }
51183 
setDedicatedAllocationImageAliasingVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51184     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
51185     {
51186       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
51187       return *this;
51188     }
51189 
51190 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51191     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
51192     {
51193       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
51194     }
51195 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51196     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
51197     {
51198       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
51199     }
51200 
51201 
51202 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51203     auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& ) const = default;
51204 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51205     bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51206     {
51207       return ( sType == rhs.sType )
51208           && ( pNext == rhs.pNext )
51209           && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
51210     }
51211 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV51212     bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51213     {
51214       return !operator==( rhs );
51215     }
51216 #endif
51217 
51218 
51219 
51220   public:
51221     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
51222     void* pNext = {};
51223     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
51224 
51225   };
51226   static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" );
51227   static_assert( std::is_standard_layout<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>::value, "struct wrapper is not a standard layout!" );
51228 
51229   template <>
51230   struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
51231   {
51232     using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
51233   };
51234 
51235   struct PhysicalDeviceDepthClipEnableFeaturesEXT
51236   {
51237     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
51238 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51239     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {} ) VULKAN_HPP_NOEXCEPT
51240       : depthClipEnable( depthClipEnable_ )
51241     {}
51242 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51243     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51244     {
51245       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) - offsetof( PhysicalDeviceDepthClipEnableFeaturesEXT, pNext ) );
51246       return *this;
51247     }
51248 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51249     PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51250     {
51251       *this = rhs;
51252     }
51253 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51254     PhysicalDeviceDepthClipEnableFeaturesEXT& operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
51255     {
51256       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>(&rhs);
51257       return *this;
51258     }
51259 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51260     PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51261     {
51262       pNext = pNext_;
51263       return *this;
51264     }
51265 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51266     PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
51267     {
51268       depthClipEnable = depthClipEnable_;
51269       return *this;
51270     }
51271 
51272 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51273     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
51274     {
51275       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
51276     }
51277 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51278     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
51279     {
51280       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
51281     }
51282 
51283 
51284 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51285     auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const& ) const = default;
51286 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51287     bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
51288     {
51289       return ( sType == rhs.sType )
51290           && ( pNext == rhs.pNext )
51291           && ( depthClipEnable == rhs.depthClipEnable );
51292     }
51293 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT51294     bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
51295     {
51296       return !operator==( rhs );
51297     }
51298 #endif
51299 
51300 
51301 
51302   public:
51303     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
51304     void* pNext = {};
51305     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
51306 
51307   };
51308   static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" );
51309   static_assert( std::is_standard_layout<PhysicalDeviceDepthClipEnableFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
51310 
51311   template <>
51312   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
51313   {
51314     using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
51315   };
51316 
51317   struct PhysicalDeviceDepthStencilResolveProperties
51318   {
51319     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
51320 
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51321     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {},
51322                                                                       VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {},
51323                                                                       VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {},
51324                                                                       VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {} ) VULKAN_HPP_NOEXCEPT
51325       : supportedDepthResolveModes( supportedDepthResolveModes_ )
51326       , supportedStencilResolveModes( supportedStencilResolveModes_ )
51327       , independentResolveNone( independentResolveNone_ )
51328       , independentResolve( independentResolve_ )
51329     {}
51330 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51331     PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51332     {
51333       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDepthStencilResolveProperties ) - offsetof( PhysicalDeviceDepthStencilResolveProperties, pNext ) );
51334       return *this;
51335     }
51336 
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51337     PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51338     {
51339       *this = rhs;
51340     }
51341 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51342     PhysicalDeviceDepthStencilResolveProperties& operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51343     {
51344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>(&rhs);
51345       return *this;
51346     }
51347 
51348 
operator VkPhysicalDeviceDepthStencilResolveProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51349     operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT
51350     {
51351       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>( this );
51352     }
51353 
operator VkPhysicalDeviceDepthStencilResolveProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51354     operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
51355     {
51356       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>( this );
51357     }
51358 
51359 
51360 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51361     auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const& ) const = default;
51362 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51363     bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51364     {
51365       return ( sType == rhs.sType )
51366           && ( pNext == rhs.pNext )
51367           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
51368           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
51369           && ( independentResolveNone == rhs.independentResolveNone )
51370           && ( independentResolve == rhs.independentResolve );
51371     }
51372 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties51373     bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51374     {
51375       return !operator==( rhs );
51376     }
51377 #endif
51378 
51379 
51380 
51381   public:
51382     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
51383     void* pNext = {};
51384     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
51385     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
51386     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
51387     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
51388 
51389   };
51390   static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" );
51391   static_assert( std::is_standard_layout<PhysicalDeviceDepthStencilResolveProperties>::value, "struct wrapper is not a standard layout!" );
51392 
51393   template <>
51394   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
51395   {
51396     using Type = PhysicalDeviceDepthStencilResolveProperties;
51397   };
51398 
51399   struct PhysicalDeviceDescriptorIndexingFeatures
51400   {
51401     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
51402 
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51403     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {},
51404                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {},
51405                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {},
51406                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {},
51407                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {},
51408                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {},
51409                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {},
51410                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {},
51411                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {},
51412                                                                    VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {},
51413                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {},
51414                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {},
51415                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {},
51416                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {},
51417                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {},
51418                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {},
51419                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {},
51420                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {},
51421                                                                    VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {},
51422                                                                    VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {} ) VULKAN_HPP_NOEXCEPT
51423       : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
51424       , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
51425       , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
51426       , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
51427       , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
51428       , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
51429       , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
51430       , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
51431       , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
51432       , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
51433       , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
51434       , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
51435       , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
51436       , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
51437       , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
51438       , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
51439       , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
51440       , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
51441       , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
51442       , runtimeDescriptorArray( runtimeDescriptorArray_ )
51443     {}
51444 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51445     PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
51446     {
51447       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDescriptorIndexingFeatures ) - offsetof( PhysicalDeviceDescriptorIndexingFeatures, pNext ) );
51448       return *this;
51449     }
51450 
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51451     PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
51452     {
51453       *this = rhs;
51454     }
51455 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51456     PhysicalDeviceDescriptorIndexingFeatures& operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
51457     {
51458       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>(&rhs);
51459       return *this;
51460     }
51461 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51462     PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51463     {
51464       pNext = pNext_;
51465       return *this;
51466     }
51467 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51468     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
51469     {
51470       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
51471       return *this;
51472     }
51473 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51474     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
51475     {
51476       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
51477       return *this;
51478     }
51479 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51480     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
51481     {
51482       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
51483       return *this;
51484     }
51485 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51486     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
51487     {
51488       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
51489       return *this;
51490     }
51491 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51492     PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
51493     {
51494       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
51495       return *this;
51496     }
51497 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51498     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
51499     {
51500       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
51501       return *this;
51502     }
51503 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51504     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
51505     {
51506       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
51507       return *this;
51508     }
51509 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51510     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
51511     {
51512       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
51513       return *this;
51514     }
51515 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51516     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
51517     {
51518       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
51519       return *this;
51520     }
51521 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51522     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
51523     {
51524       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
51525       return *this;
51526     }
51527 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51528     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
51529     {
51530       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
51531       return *this;
51532     }
51533 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51534     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
51535     {
51536       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
51537       return *this;
51538     }
51539 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51540     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
51541     {
51542       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
51543       return *this;
51544     }
51545 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51546     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
51547     {
51548       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
51549       return *this;
51550     }
51551 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51552     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
51553     {
51554       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
51555       return *this;
51556     }
51557 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51558     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
51559     {
51560       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
51561       return *this;
51562     }
51563 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51564     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
51565     {
51566       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
51567       return *this;
51568     }
51569 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51570     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
51571     {
51572       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
51573       return *this;
51574     }
51575 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51576     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
51577     {
51578       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
51579       return *this;
51580     }
51581 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51582     PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
51583     {
51584       runtimeDescriptorArray = runtimeDescriptorArray_;
51585       return *this;
51586     }
51587 
51588 
operator VkPhysicalDeviceDescriptorIndexingFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51589     operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT
51590     {
51591       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
51592     }
51593 
operator VkPhysicalDeviceDescriptorIndexingFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51594     operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
51595     {
51596       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
51597     }
51598 
51599 
51600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51601     auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const& ) const = default;
51602 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51603     bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
51604     {
51605       return ( sType == rhs.sType )
51606           && ( pNext == rhs.pNext )
51607           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
51608           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
51609           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
51610           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
51611           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
51612           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
51613           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
51614           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
51615           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
51616           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
51617           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
51618           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
51619           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
51620           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
51621           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
51622           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
51623           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
51624           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
51625           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
51626           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
51627     }
51628 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures51629     bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
51630     {
51631       return !operator==( rhs );
51632     }
51633 #endif
51634 
51635 
51636 
51637   public:
51638     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
51639     void* pNext = {};
51640     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
51641     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
51642     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
51643     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
51644     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
51645     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
51646     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
51647     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
51648     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
51649     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
51650     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
51651     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
51652     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
51653     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
51654     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
51655     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
51656     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
51657     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
51658     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
51659     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
51660 
51661   };
51662   static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" );
51663   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingFeatures>::value, "struct wrapper is not a standard layout!" );
51664 
51665   template <>
51666   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
51667   {
51668     using Type = PhysicalDeviceDescriptorIndexingFeatures;
51669   };
51670 
51671   struct PhysicalDeviceDescriptorIndexingProperties
51672   {
51673     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
51674 
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51675     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {},
51676                                                                      VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {},
51677                                                                      VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {},
51678                                                                      VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {},
51679                                                                      VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {},
51680                                                                      VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {},
51681                                                                      VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {},
51682                                                                      VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {},
51683                                                                      uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {},
51684                                                                      uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {},
51685                                                                      uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {},
51686                                                                      uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {},
51687                                                                      uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {},
51688                                                                      uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {},
51689                                                                      uint32_t maxPerStageUpdateAfterBindResources_ = {},
51690                                                                      uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {},
51691                                                                      uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {},
51692                                                                      uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {},
51693                                                                      uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {},
51694                                                                      uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {},
51695                                                                      uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {},
51696                                                                      uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {},
51697                                                                      uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {} ) VULKAN_HPP_NOEXCEPT
51698       : maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
51699       , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
51700       , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
51701       , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
51702       , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
51703       , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
51704       , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
51705       , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
51706       , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
51707       , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
51708       , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
51709       , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
51710       , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
51711       , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
51712       , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
51713       , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
51714       , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
51715       , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
51716       , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
51717       , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
51718       , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
51719       , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
51720       , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
51721     {}
51722 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51723     PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51724     {
51725       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDescriptorIndexingProperties ) - offsetof( PhysicalDeviceDescriptorIndexingProperties, pNext ) );
51726       return *this;
51727     }
51728 
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51729     PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51730     {
51731       *this = rhs;
51732     }
51733 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51734     PhysicalDeviceDescriptorIndexingProperties& operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51735     {
51736       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>(&rhs);
51737       return *this;
51738     }
51739 
51740 
operator VkPhysicalDeviceDescriptorIndexingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51741     operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT
51742     {
51743       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>( this );
51744     }
51745 
operator VkPhysicalDeviceDescriptorIndexingProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51746     operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
51747     {
51748       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>( this );
51749     }
51750 
51751 
51752 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51753     auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const& ) const = default;
51754 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51755     bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51756     {
51757       return ( sType == rhs.sType )
51758           && ( pNext == rhs.pNext )
51759           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
51760           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
51761           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
51762           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
51763           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
51764           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
51765           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
51766           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
51767           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
51768           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
51769           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
51770           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
51771           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
51772           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
51773           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
51774           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
51775           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
51776           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
51777           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
51778           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
51779           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
51780           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
51781           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
51782     }
51783 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties51784     bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51785     {
51786       return !operator==( rhs );
51787     }
51788 #endif
51789 
51790 
51791 
51792   public:
51793     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
51794     void* pNext = {};
51795     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
51796     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
51797     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
51798     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
51799     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
51800     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
51801     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
51802     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
51803     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
51804     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
51805     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
51806     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
51807     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
51808     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
51809     uint32_t maxPerStageUpdateAfterBindResources = {};
51810     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
51811     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
51812     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
51813     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
51814     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
51815     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
51816     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
51817     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
51818 
51819   };
51820   static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" );
51821   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingProperties>::value, "struct wrapper is not a standard layout!" );
51822 
51823   template <>
51824   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
51825   {
51826     using Type = PhysicalDeviceDescriptorIndexingProperties;
51827   };
51828 
51829   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
51830   {
51831     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
51832 
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51833     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {} ) VULKAN_HPP_NOEXCEPT
51834       : deviceGeneratedCommands( deviceGeneratedCommands_ )
51835     {}
51836 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51837     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51838     {
51839       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) - offsetof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, pNext ) );
51840       return *this;
51841     }
51842 
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51843     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51844     {
51845       *this = rhs;
51846     }
51847 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51848     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV& operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51849     {
51850       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>(&rhs);
51851       return *this;
51852     }
51853 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51854     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51855     {
51856       pNext = pNext_;
51857       return *this;
51858     }
51859 
setDeviceGeneratedCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51860     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
51861     {
51862       deviceGeneratedCommands = deviceGeneratedCommands_;
51863       return *this;
51864     }
51865 
51866 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51867     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
51868     {
51869       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
51870     }
51871 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51872     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
51873     {
51874       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
51875     }
51876 
51877 
51878 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51879     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& ) const = default;
51880 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51881     bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51882     {
51883       return ( sType == rhs.sType )
51884           && ( pNext == rhs.pNext )
51885           && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
51886     }
51887 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV51888     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51889     {
51890       return !operator==( rhs );
51891     }
51892 #endif
51893 
51894 
51895 
51896   public:
51897     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
51898     void* pNext = {};
51899     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
51900 
51901   };
51902   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), "struct and wrapper have different size!" );
51903   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
51904 
51905   template <>
51906   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
51907   {
51908     using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
51909   };
51910 
51911   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
51912   {
51913     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
51914 
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51915     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( uint32_t maxGraphicsShaderGroupCount_ = {},
51916                                                                             uint32_t maxIndirectSequenceCount_ = {},
51917                                                                             uint32_t maxIndirectCommandsTokenCount_ = {},
51918                                                                             uint32_t maxIndirectCommandsStreamCount_ = {},
51919                                                                             uint32_t maxIndirectCommandsTokenOffset_ = {},
51920                                                                             uint32_t maxIndirectCommandsStreamStride_ = {},
51921                                                                             uint32_t minSequencesCountBufferOffsetAlignment_ = {},
51922                                                                             uint32_t minSequencesIndexBufferOffsetAlignment_ = {},
51923                                                                             uint32_t minIndirectCommandsBufferOffsetAlignment_ = {} ) VULKAN_HPP_NOEXCEPT
51924       : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ )
51925       , maxIndirectSequenceCount( maxIndirectSequenceCount_ )
51926       , maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ )
51927       , maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ )
51928       , maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ )
51929       , maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ )
51930       , minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ )
51931       , minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ )
51932       , minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
51933     {}
51934 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51935     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51936     {
51937       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) - offsetof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, pNext ) );
51938       return *this;
51939     }
51940 
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51941     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51942     {
51943       *this = rhs;
51944     }
51945 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51946     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV& operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51947     {
51948       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>(&rhs);
51949       return *this;
51950     }
51951 
51952 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51953     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
51954     {
51955       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
51956     }
51957 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51958     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
51959     {
51960       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
51961     }
51962 
51963 
51964 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51965     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& ) const = default;
51966 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51967     bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51968     {
51969       return ( sType == rhs.sType )
51970           && ( pNext == rhs.pNext )
51971           && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount )
51972           && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount )
51973           && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount )
51974           && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount )
51975           && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset )
51976           && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride )
51977           && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment )
51978           && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment )
51979           && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
51980     }
51981 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV51982     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51983     {
51984       return !operator==( rhs );
51985     }
51986 #endif
51987 
51988 
51989 
51990   public:
51991     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
51992     void* pNext = {};
51993     uint32_t maxGraphicsShaderGroupCount = {};
51994     uint32_t maxIndirectSequenceCount = {};
51995     uint32_t maxIndirectCommandsTokenCount = {};
51996     uint32_t maxIndirectCommandsStreamCount = {};
51997     uint32_t maxIndirectCommandsTokenOffset = {};
51998     uint32_t maxIndirectCommandsStreamStride = {};
51999     uint32_t minSequencesCountBufferOffsetAlignment = {};
52000     uint32_t minSequencesIndexBufferOffsetAlignment = {};
52001     uint32_t minIndirectCommandsBufferOffsetAlignment = {};
52002 
52003   };
52004   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), "struct and wrapper have different size!" );
52005   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
52006 
52007   template <>
52008   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
52009   {
52010     using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
52011   };
52012 
52013   struct PhysicalDeviceDiagnosticsConfigFeaturesNV
52014   {
52015     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
52016 
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52017     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {} ) VULKAN_HPP_NOEXCEPT
52018       : diagnosticsConfig( diagnosticsConfig_ )
52019     {}
52020 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52021     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52022     {
52023       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) - offsetof( PhysicalDeviceDiagnosticsConfigFeaturesNV, pNext ) );
52024       return *this;
52025     }
52026 
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52027     PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52028     {
52029       *this = rhs;
52030     }
52031 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52032     PhysicalDeviceDiagnosticsConfigFeaturesNV& operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52033     {
52034       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>(&rhs);
52035       return *this;
52036     }
52037 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52038     PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
52039     {
52040       pNext = pNext_;
52041       return *this;
52042     }
52043 
setDiagnosticsConfigVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52044     PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
52045     {
52046       diagnosticsConfig = diagnosticsConfig_;
52047       return *this;
52048     }
52049 
52050 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52051     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
52052     {
52053       return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
52054     }
52055 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52056     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
52057     {
52058       return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
52059     }
52060 
52061 
52062 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52063     auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const& ) const = default;
52064 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52065     bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
52066     {
52067       return ( sType == rhs.sType )
52068           && ( pNext == rhs.pNext )
52069           && ( diagnosticsConfig == rhs.diagnosticsConfig );
52070     }
52071 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV52072     bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
52073     {
52074       return !operator==( rhs );
52075     }
52076 #endif
52077 
52078 
52079 
52080   public:
52081     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
52082     void* pNext = {};
52083     VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
52084 
52085   };
52086   static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), "struct and wrapper have different size!" );
52087   static_assert( std::is_standard_layout<PhysicalDeviceDiagnosticsConfigFeaturesNV>::value, "struct wrapper is not a standard layout!" );
52088 
52089   template <>
52090   struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
52091   {
52092     using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
52093   };
52094 
52095   struct PhysicalDeviceDiscardRectanglePropertiesEXT
52096   {
52097     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
52098 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52099     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( uint32_t maxDiscardRectangles_ = {} ) VULKAN_HPP_NOEXCEPT
52100       : maxDiscardRectangles( maxDiscardRectangles_ )
52101     {}
52102 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52103     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52104     {
52105       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) - offsetof( PhysicalDeviceDiscardRectanglePropertiesEXT, pNext ) );
52106       return *this;
52107     }
52108 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52109     PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52110     {
52111       *this = rhs;
52112     }
52113 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52114     PhysicalDeviceDiscardRectanglePropertiesEXT& operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52115     {
52116       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>(&rhs);
52117       return *this;
52118     }
52119 
52120 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52121     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
52122     {
52123       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
52124     }
52125 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52126     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
52127     {
52128       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
52129     }
52130 
52131 
52132 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52133     auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const& ) const = default;
52134 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52135     bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52136     {
52137       return ( sType == rhs.sType )
52138           && ( pNext == rhs.pNext )
52139           && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
52140     }
52141 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT52142     bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52143     {
52144       return !operator==( rhs );
52145     }
52146 #endif
52147 
52148 
52149 
52150   public:
52151     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
52152     void* pNext = {};
52153     uint32_t maxDiscardRectangles = {};
52154 
52155   };
52156   static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
52157   static_assert( std::is_standard_layout<PhysicalDeviceDiscardRectanglePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
52158 
52159   template <>
52160   struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
52161   {
52162     using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
52163   };
52164 
52165   struct PhysicalDeviceDriverProperties
52166   {
52167     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
52168 
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52169     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary,
52170                                                             std::array<char,VK_MAX_DRIVER_NAME_SIZE> const& driverName_ = {},
52171                                                             std::array<char,VK_MAX_DRIVER_INFO_SIZE> const& driverInfo_ = {},
52172                                                             VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {} ) VULKAN_HPP_NOEXCEPT
52173       : driverID( driverID_ )
52174       , driverName( driverName_ )
52175       , driverInfo( driverInfo_ )
52176       , conformanceVersion( conformanceVersion_ )
52177     {}
52178 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52179     PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52180     {
52181       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceDriverProperties ) - offsetof( PhysicalDeviceDriverProperties, pNext ) );
52182       return *this;
52183     }
52184 
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52185     PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52186     {
52187       *this = rhs;
52188     }
52189 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52190     PhysicalDeviceDriverProperties& operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52191     {
52192       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>(&rhs);
52193       return *this;
52194     }
52195 
52196 
operator VkPhysicalDeviceDriverProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52197     operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT
52198     {
52199       return *reinterpret_cast<const VkPhysicalDeviceDriverProperties*>( this );
52200     }
52201 
operator VkPhysicalDeviceDriverProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52202     operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
52203     {
52204       return *reinterpret_cast<VkPhysicalDeviceDriverProperties*>( this );
52205     }
52206 
52207 
52208 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52209     auto operator<=>( PhysicalDeviceDriverProperties const& ) const = default;
52210 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52211     bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52212     {
52213       return ( sType == rhs.sType )
52214           && ( pNext == rhs.pNext )
52215           && ( driverID == rhs.driverID )
52216           && ( driverName == rhs.driverName )
52217           && ( driverInfo == rhs.driverInfo )
52218           && ( conformanceVersion == rhs.conformanceVersion );
52219     }
52220 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties52221     bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52222     {
52223       return !operator==( rhs );
52224     }
52225 #endif
52226 
52227 
52228 
52229   public:
52230     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
52231     void* pNext = {};
52232     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
52233     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
52234     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
52235     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
52236 
52237   };
52238   static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" );
52239   static_assert( std::is_standard_layout<PhysicalDeviceDriverProperties>::value, "struct wrapper is not a standard layout!" );
52240 
52241   template <>
52242   struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
52243   {
52244     using Type = PhysicalDeviceDriverProperties;
52245   };
52246 
52247   struct PhysicalDeviceExclusiveScissorFeaturesNV
52248   {
52249     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
52250 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52251     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {} ) VULKAN_HPP_NOEXCEPT
52252       : exclusiveScissor( exclusiveScissor_ )
52253     {}
52254 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52255     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52256     {
52257       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) - offsetof( PhysicalDeviceExclusiveScissorFeaturesNV, pNext ) );
52258       return *this;
52259     }
52260 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52261     PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52262     {
52263       *this = rhs;
52264     }
52265 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52266     PhysicalDeviceExclusiveScissorFeaturesNV& operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52267     {
52268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>(&rhs);
52269       return *this;
52270     }
52271 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52272     PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
52273     {
52274       pNext = pNext_;
52275       return *this;
52276     }
52277 
setExclusiveScissorVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52278     PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
52279     {
52280       exclusiveScissor = exclusiveScissor_;
52281       return *this;
52282     }
52283 
52284 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52285     operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
52286     {
52287       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
52288     }
52289 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52290     operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
52291     {
52292       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
52293     }
52294 
52295 
52296 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52297     auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const& ) const = default;
52298 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52299     bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
52300     {
52301       return ( sType == rhs.sType )
52302           && ( pNext == rhs.pNext )
52303           && ( exclusiveScissor == rhs.exclusiveScissor );
52304     }
52305 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV52306     bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
52307     {
52308       return !operator==( rhs );
52309     }
52310 #endif
52311 
52312 
52313 
52314   public:
52315     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
52316     void* pNext = {};
52317     VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
52318 
52319   };
52320   static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" );
52321   static_assert( std::is_standard_layout<PhysicalDeviceExclusiveScissorFeaturesNV>::value, "struct wrapper is not a standard layout!" );
52322 
52323   template <>
52324   struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
52325   {
52326     using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
52327   };
52328 
52329   struct PhysicalDeviceExternalBufferInfo
52330   {
52331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
52332 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52333     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {},
52334                                                            VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
52335                                                            VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
52336       : flags( flags_ )
52337       , usage( usage_ )
52338       , handleType( handleType_ )
52339     {}
52340 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52341     PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52342     {
52343       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceExternalBufferInfo ) - offsetof( PhysicalDeviceExternalBufferInfo, pNext ) );
52344       return *this;
52345     }
52346 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52347     PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52348     {
52349       *this = rhs;
52350     }
52351 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52352     PhysicalDeviceExternalBufferInfo& operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52353     {
52354       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>(&rhs);
52355       return *this;
52356     }
52357 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52358     PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52359     {
52360       pNext = pNext_;
52361       return *this;
52362     }
52363 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52364     PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
52365     {
52366       flags = flags_;
52367       return *this;
52368     }
52369 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52370     PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
52371     {
52372       usage = usage_;
52373       return *this;
52374     }
52375 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52376     PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
52377     {
52378       handleType = handleType_;
52379       return *this;
52380     }
52381 
52382 
operator VkPhysicalDeviceExternalBufferInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52383     operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT
52384     {
52385       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
52386     }
52387 
operator VkPhysicalDeviceExternalBufferInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52388     operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
52389     {
52390       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
52391     }
52392 
52393 
52394 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52395     auto operator<=>( PhysicalDeviceExternalBufferInfo const& ) const = default;
52396 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52397     bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52398     {
52399       return ( sType == rhs.sType )
52400           && ( pNext == rhs.pNext )
52401           && ( flags == rhs.flags )
52402           && ( usage == rhs.usage )
52403           && ( handleType == rhs.handleType );
52404     }
52405 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52406     bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52407     {
52408       return !operator==( rhs );
52409     }
52410 #endif
52411 
52412 
52413 
52414   public:
52415     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
52416     const void* pNext = {};
52417     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
52418     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
52419     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
52420 
52421   };
52422   static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" );
52423   static_assert( std::is_standard_layout<PhysicalDeviceExternalBufferInfo>::value, "struct wrapper is not a standard layout!" );
52424 
52425   template <>
52426   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
52427   {
52428     using Type = PhysicalDeviceExternalBufferInfo;
52429   };
52430 
52431   struct PhysicalDeviceExternalFenceInfo
52432   {
52433     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
52434 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52435     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
52436       : handleType( handleType_ )
52437     {}
52438 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52439     PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52440     {
52441       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceExternalFenceInfo ) - offsetof( PhysicalDeviceExternalFenceInfo, pNext ) );
52442       return *this;
52443     }
52444 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52445     PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52446     {
52447       *this = rhs;
52448     }
52449 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52450     PhysicalDeviceExternalFenceInfo& operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52451     {
52452       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>(&rhs);
52453       return *this;
52454     }
52455 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52456     PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52457     {
52458       pNext = pNext_;
52459       return *this;
52460     }
52461 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52462     PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
52463     {
52464       handleType = handleType_;
52465       return *this;
52466     }
52467 
52468 
operator VkPhysicalDeviceExternalFenceInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52469     operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT
52470     {
52471       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
52472     }
52473 
operator VkPhysicalDeviceExternalFenceInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52474     operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
52475     {
52476       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
52477     }
52478 
52479 
52480 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52481     auto operator<=>( PhysicalDeviceExternalFenceInfo const& ) const = default;
52482 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52483     bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52484     {
52485       return ( sType == rhs.sType )
52486           && ( pNext == rhs.pNext )
52487           && ( handleType == rhs.handleType );
52488     }
52489 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52490     bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52491     {
52492       return !operator==( rhs );
52493     }
52494 #endif
52495 
52496 
52497 
52498   public:
52499     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
52500     const void* pNext = {};
52501     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
52502 
52503   };
52504   static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" );
52505   static_assert( std::is_standard_layout<PhysicalDeviceExternalFenceInfo>::value, "struct wrapper is not a standard layout!" );
52506 
52507   template <>
52508   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
52509   {
52510     using Type = PhysicalDeviceExternalFenceInfo;
52511   };
52512 
52513   struct PhysicalDeviceExternalImageFormatInfo
52514   {
52515     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
52516 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52517     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
52518       : handleType( handleType_ )
52519     {}
52520 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52521     PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52522     {
52523       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceExternalImageFormatInfo ) - offsetof( PhysicalDeviceExternalImageFormatInfo, pNext ) );
52524       return *this;
52525     }
52526 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52527     PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52528     {
52529       *this = rhs;
52530     }
52531 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52532     PhysicalDeviceExternalImageFormatInfo& operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52533     {
52534       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>(&rhs);
52535       return *this;
52536     }
52537 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52538     PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52539     {
52540       pNext = pNext_;
52541       return *this;
52542     }
52543 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52544     PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
52545     {
52546       handleType = handleType_;
52547       return *this;
52548     }
52549 
52550 
operator VkPhysicalDeviceExternalImageFormatInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52551     operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT
52552     {
52553       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
52554     }
52555 
operator VkPhysicalDeviceExternalImageFormatInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52556     operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
52557     {
52558       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
52559     }
52560 
52561 
52562 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52563     auto operator<=>( PhysicalDeviceExternalImageFormatInfo const& ) const = default;
52564 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52565     bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52566     {
52567       return ( sType == rhs.sType )
52568           && ( pNext == rhs.pNext )
52569           && ( handleType == rhs.handleType );
52570     }
52571 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo52572     bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52573     {
52574       return !operator==( rhs );
52575     }
52576 #endif
52577 
52578 
52579 
52580   public:
52581     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
52582     const void* pNext = {};
52583     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
52584 
52585   };
52586   static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" );
52587   static_assert( std::is_standard_layout<PhysicalDeviceExternalImageFormatInfo>::value, "struct wrapper is not a standard layout!" );
52588 
52589   template <>
52590   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
52591   {
52592     using Type = PhysicalDeviceExternalImageFormatInfo;
52593   };
52594 
52595   struct PhysicalDeviceExternalMemoryHostPropertiesEXT
52596   {
52597     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
52598 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52599     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {} ) VULKAN_HPP_NOEXCEPT
52600       : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
52601     {}
52602 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52603     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52604     {
52605       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) - offsetof( PhysicalDeviceExternalMemoryHostPropertiesEXT, pNext ) );
52606       return *this;
52607     }
52608 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52609     PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52610     {
52611       *this = rhs;
52612     }
52613 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52614     PhysicalDeviceExternalMemoryHostPropertiesEXT& operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52615     {
52616       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>(&rhs);
52617       return *this;
52618     }
52619 
52620 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52621     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
52622     {
52623       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
52624     }
52625 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52626     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
52627     {
52628       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
52629     }
52630 
52631 
52632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52633     auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const& ) const = default;
52634 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52635     bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52636     {
52637       return ( sType == rhs.sType )
52638           && ( pNext == rhs.pNext )
52639           && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
52640     }
52641 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT52642     bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52643     {
52644       return !operator==( rhs );
52645     }
52646 #endif
52647 
52648 
52649 
52650   public:
52651     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
52652     void* pNext = {};
52653     VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
52654 
52655   };
52656   static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" );
52657   static_assert( std::is_standard_layout<PhysicalDeviceExternalMemoryHostPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
52658 
52659   template <>
52660   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
52661   {
52662     using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
52663   };
52664 
52665   struct PhysicalDeviceExternalSemaphoreInfo
52666   {
52667     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
52668 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52669     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
52670       : handleType( handleType_ )
52671     {}
52672 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52673     PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52674     {
52675       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceExternalSemaphoreInfo ) - offsetof( PhysicalDeviceExternalSemaphoreInfo, pNext ) );
52676       return *this;
52677     }
52678 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52679     PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52680     {
52681       *this = rhs;
52682     }
52683 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52684     PhysicalDeviceExternalSemaphoreInfo& operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52685     {
52686       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>(&rhs);
52687       return *this;
52688     }
52689 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52690     PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52691     {
52692       pNext = pNext_;
52693       return *this;
52694     }
52695 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52696     PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
52697     {
52698       handleType = handleType_;
52699       return *this;
52700     }
52701 
52702 
operator VkPhysicalDeviceExternalSemaphoreInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52703     operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT
52704     {
52705       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
52706     }
52707 
operator VkPhysicalDeviceExternalSemaphoreInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52708     operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
52709     {
52710       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
52711     }
52712 
52713 
52714 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52715     auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const& ) const = default;
52716 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52717     bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52718     {
52719       return ( sType == rhs.sType )
52720           && ( pNext == rhs.pNext )
52721           && ( handleType == rhs.handleType );
52722     }
52723 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52724     bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52725     {
52726       return !operator==( rhs );
52727     }
52728 #endif
52729 
52730 
52731 
52732   public:
52733     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
52734     const void* pNext = {};
52735     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
52736 
52737   };
52738   static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" );
52739   static_assert( std::is_standard_layout<PhysicalDeviceExternalSemaphoreInfo>::value, "struct wrapper is not a standard layout!" );
52740 
52741   template <>
52742   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
52743   {
52744     using Type = PhysicalDeviceExternalSemaphoreInfo;
52745   };
52746 
52747   struct PhysicalDeviceFeatures2
52748   {
52749     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
52750 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252751     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {} ) VULKAN_HPP_NOEXCEPT
52752       : features( features_ )
52753     {}
52754 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252755     PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
52756     {
52757       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceFeatures2 ) - offsetof( PhysicalDeviceFeatures2, pNext ) );
52758       return *this;
52759     }
52760 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252761     PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
52762     {
52763       *this = rhs;
52764     }
52765 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252766     PhysicalDeviceFeatures2& operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
52767     {
52768       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>(&rhs);
52769       return *this;
52770     }
52771 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252772     PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
52773     {
52774       pNext = pNext_;
52775       return *this;
52776     }
52777 
setFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252778     PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
52779     {
52780       features = features_;
52781       return *this;
52782     }
52783 
52784 
operator VkPhysicalDeviceFeatures2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252785     operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT
52786     {
52787       return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
52788     }
52789 
operator VkPhysicalDeviceFeatures2&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252790     operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
52791     {
52792       return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
52793     }
52794 
52795 
52796 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52797     auto operator<=>( PhysicalDeviceFeatures2 const& ) const = default;
52798 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252799     bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52800     {
52801       return ( sType == rhs.sType )
52802           && ( pNext == rhs.pNext )
52803           && ( features == rhs.features );
52804     }
52805 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252806     bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52807     {
52808       return !operator==( rhs );
52809     }
52810 #endif
52811 
52812 
52813 
52814   public:
52815     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
52816     void* pNext = {};
52817     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
52818 
52819   };
52820   static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" );
52821   static_assert( std::is_standard_layout<PhysicalDeviceFeatures2>::value, "struct wrapper is not a standard layout!" );
52822 
52823   template <>
52824   struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
52825   {
52826     using Type = PhysicalDeviceFeatures2;
52827   };
52828 
52829   struct PhysicalDeviceFloatControlsProperties
52830   {
52831     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
52832 
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52833     VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
52834                                                                 VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
52835                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {},
52836                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {},
52837                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {},
52838                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {},
52839                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {},
52840                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {},
52841                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {},
52842                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {},
52843                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {},
52844                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {},
52845                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {},
52846                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {},
52847                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {},
52848                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {},
52849                                                                 VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {} ) VULKAN_HPP_NOEXCEPT
52850       : denormBehaviorIndependence( denormBehaviorIndependence_ )
52851       , roundingModeIndependence( roundingModeIndependence_ )
52852       , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
52853       , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
52854       , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
52855       , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
52856       , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
52857       , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
52858       , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
52859       , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
52860       , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
52861       , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
52862       , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
52863       , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
52864       , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
52865       , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
52866       , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
52867     {}
52868 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52869     PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52870     {
52871       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceFloatControlsProperties ) - offsetof( PhysicalDeviceFloatControlsProperties, pNext ) );
52872       return *this;
52873     }
52874 
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52875     PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52876     {
52877       *this = rhs;
52878     }
52879 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52880     PhysicalDeviceFloatControlsProperties& operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52881     {
52882       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>(&rhs);
52883       return *this;
52884     }
52885 
52886 
operator VkPhysicalDeviceFloatControlsProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52887     operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT
52888     {
52889       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>( this );
52890     }
52891 
operator VkPhysicalDeviceFloatControlsProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52892     operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
52893     {
52894       return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>( this );
52895     }
52896 
52897 
52898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52899     auto operator<=>( PhysicalDeviceFloatControlsProperties const& ) const = default;
52900 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52901     bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52902     {
52903       return ( sType == rhs.sType )
52904           && ( pNext == rhs.pNext )
52905           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
52906           && ( roundingModeIndependence == rhs.roundingModeIndependence )
52907           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
52908           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
52909           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
52910           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
52911           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
52912           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
52913           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
52914           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
52915           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
52916           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
52917           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
52918           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
52919           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
52920           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
52921           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
52922     }
52923 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties52924     bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52925     {
52926       return !operator==( rhs );
52927     }
52928 #endif
52929 
52930 
52931 
52932   public:
52933     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
52934     void* pNext = {};
52935     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
52936     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
52937     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
52938     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
52939     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
52940     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
52941     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
52942     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
52943     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
52944     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
52945     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
52946     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
52947     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
52948     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
52949     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
52950     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
52951     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
52952 
52953   };
52954   static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" );
52955   static_assert( std::is_standard_layout<PhysicalDeviceFloatControlsProperties>::value, "struct wrapper is not a standard layout!" );
52956 
52957   template <>
52958   struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
52959   {
52960     using Type = PhysicalDeviceFloatControlsProperties;
52961   };
52962 
52963   struct PhysicalDeviceFragmentDensityMapFeaturesEXT
52964   {
52965     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
52966 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT52967     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {},
52968                                                                       VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {},
52969                                                                       VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {} ) VULKAN_HPP_NOEXCEPT
52970       : fragmentDensityMap( fragmentDensityMap_ )
52971       , fragmentDensityMapDynamic( fragmentDensityMapDynamic_ )
52972       , fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
52973     {}
52974 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT52975     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52976     {
52977       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) - offsetof( PhysicalDeviceFragmentDensityMapFeaturesEXT, pNext ) );
52978       return *this;
52979     }
52980 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT52981     PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52982     {
52983       *this = rhs;
52984     }
52985 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT52986     PhysicalDeviceFragmentDensityMapFeaturesEXT& operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52987     {
52988       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>(&rhs);
52989       return *this;
52990     }
52991 
52992 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT52993     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
52994     {
52995       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
52996     }
52997 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT52998     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
52999     {
53000       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
53001     }
53002 
53003 
53004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53005     auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const& ) const = default;
53006 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT53007     bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53008     {
53009       return ( sType == rhs.sType )
53010           && ( pNext == rhs.pNext )
53011           && ( fragmentDensityMap == rhs.fragmentDensityMap )
53012           && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
53013           && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
53014     }
53015 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT53016     bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53017     {
53018       return !operator==( rhs );
53019     }
53020 #endif
53021 
53022 
53023 
53024   public:
53025     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
53026     void* pNext = {};
53027     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
53028     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
53029     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
53030 
53031   };
53032   static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" );
53033   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
53034 
53035   template <>
53036   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
53037   {
53038     using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
53039   };
53040 
53041   struct PhysicalDeviceFragmentDensityMapPropertiesEXT
53042   {
53043     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
53044 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53045     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {},
53046                                                                         VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {},
53047                                                                         VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {} ) VULKAN_HPP_NOEXCEPT
53048       : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ )
53049       , maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ )
53050       , fragmentDensityInvocations( fragmentDensityInvocations_ )
53051     {}
53052 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53053     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53054     {
53055       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) - offsetof( PhysicalDeviceFragmentDensityMapPropertiesEXT, pNext ) );
53056       return *this;
53057     }
53058 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53059     PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53060     {
53061       *this = rhs;
53062     }
53063 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53064     PhysicalDeviceFragmentDensityMapPropertiesEXT& operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53065     {
53066       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>(&rhs);
53067       return *this;
53068     }
53069 
53070 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53071     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
53072     {
53073       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
53074     }
53075 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53076     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
53077     {
53078       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
53079     }
53080 
53081 
53082 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53083     auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const& ) const = default;
53084 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53085     bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53086     {
53087       return ( sType == rhs.sType )
53088           && ( pNext == rhs.pNext )
53089           && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
53090           && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
53091           && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
53092     }
53093 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT53094     bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53095     {
53096       return !operator==( rhs );
53097     }
53098 #endif
53099 
53100 
53101 
53102   public:
53103     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
53104     void* pNext = {};
53105     VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
53106     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
53107     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
53108 
53109   };
53110   static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" );
53111   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
53112 
53113   template <>
53114   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
53115   {
53116     using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
53117   };
53118 
53119   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
53120   {
53121     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
53122 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53123     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {} ) VULKAN_HPP_NOEXCEPT
53124       : fragmentShaderBarycentric( fragmentShaderBarycentric_ )
53125     {}
53126 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53127     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
53128     {
53129       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) - offsetof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV, pNext ) );
53130       return *this;
53131     }
53132 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53133     PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
53134     {
53135       *this = rhs;
53136     }
53137 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53138     PhysicalDeviceFragmentShaderBarycentricFeaturesNV& operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
53139     {
53140       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV const *>(&rhs);
53141       return *this;
53142     }
53143 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53144     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
53145     {
53146       pNext = pNext_;
53147       return *this;
53148     }
53149 
setFragmentShaderBarycentricVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53150     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
53151     {
53152       fragmentShaderBarycentric = fragmentShaderBarycentric_;
53153       return *this;
53154     }
53155 
53156 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53157     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
53158     {
53159       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
53160     }
53161 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53162     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT
53163     {
53164       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
53165     }
53166 
53167 
53168 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53169     auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& ) const = default;
53170 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53171     bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53172     {
53173       return ( sType == rhs.sType )
53174           && ( pNext == rhs.pNext )
53175           && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
53176     }
53177 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV53178     bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53179     {
53180       return !operator==( rhs );
53181     }
53182 #endif
53183 
53184 
53185 
53186   public:
53187     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
53188     void* pNext = {};
53189     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
53190 
53191   };
53192   static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" );
53193   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderBarycentricFeaturesNV>::value, "struct wrapper is not a standard layout!" );
53194 
53195   template <>
53196   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV>
53197   {
53198     using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
53199   };
53200 
53201   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
53202   {
53203     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
53204 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53205     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {},
53206                                                                            VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {},
53207                                                                            VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {} ) VULKAN_HPP_NOEXCEPT
53208       : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ )
53209       , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ )
53210       , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
53211     {}
53212 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53213     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53214     {
53215       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) - offsetof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT, pNext ) );
53216       return *this;
53217     }
53218 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53219     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53220     {
53221       *this = rhs;
53222     }
53223 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53224     PhysicalDeviceFragmentShaderInterlockFeaturesEXT& operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53225     {
53226       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>(&rhs);
53227       return *this;
53228     }
53229 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53230     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
53231     {
53232       pNext = pNext_;
53233       return *this;
53234     }
53235 
setFragmentShaderSampleInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53236     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
53237     {
53238       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
53239       return *this;
53240     }
53241 
setFragmentShaderPixelInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53242     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
53243     {
53244       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
53245       return *this;
53246     }
53247 
setFragmentShaderShadingRateInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53248     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
53249     {
53250       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
53251       return *this;
53252     }
53253 
53254 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53255     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
53256     {
53257       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
53258     }
53259 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53260     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
53261     {
53262       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
53263     }
53264 
53265 
53266 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53267     auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& ) const = default;
53268 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53269     bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53270     {
53271       return ( sType == rhs.sType )
53272           && ( pNext == rhs.pNext )
53273           && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
53274           && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
53275           && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
53276     }
53277 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT53278     bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53279     {
53280       return !operator==( rhs );
53281     }
53282 #endif
53283 
53284 
53285 
53286   public:
53287     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
53288     void* pNext = {};
53289     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
53290     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
53291     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
53292 
53293   };
53294   static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" );
53295   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderInterlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
53296 
53297   template <>
53298   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
53299   {
53300     using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
53301   };
53302 
53303   struct PhysicalDeviceGroupProperties
53304   {
53305     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
53306 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53307     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( uint32_t physicalDeviceCount_ = {},
53308                                                            std::array<VULKAN_HPP_NAMESPACE::PhysicalDevice,VK_MAX_DEVICE_GROUP_SIZE> const& physicalDevices_ = {},
53309                                                            VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {} ) VULKAN_HPP_NOEXCEPT
53310       : physicalDeviceCount( physicalDeviceCount_ )
53311       , physicalDevices( physicalDevices_ )
53312       , subsetAllocation( subsetAllocation_ )
53313     {}
53314 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53315     PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53316     {
53317       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceGroupProperties ) - offsetof( PhysicalDeviceGroupProperties, pNext ) );
53318       return *this;
53319     }
53320 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53321     PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53322     {
53323       *this = rhs;
53324     }
53325 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53326     PhysicalDeviceGroupProperties& operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53327     {
53328       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>(&rhs);
53329       return *this;
53330     }
53331 
53332 
operator VkPhysicalDeviceGroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53333     operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT
53334     {
53335       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
53336     }
53337 
operator VkPhysicalDeviceGroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53338     operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
53339     {
53340       return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
53341     }
53342 
53343 
53344 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53345     auto operator<=>( PhysicalDeviceGroupProperties const& ) const = default;
53346 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53347     bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53348     {
53349       return ( sType == rhs.sType )
53350           && ( pNext == rhs.pNext )
53351           && ( physicalDeviceCount == rhs.physicalDeviceCount )
53352           && ( physicalDevices == rhs.physicalDevices )
53353           && ( subsetAllocation == rhs.subsetAllocation );
53354     }
53355 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties53356     bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53357     {
53358       return !operator==( rhs );
53359     }
53360 #endif
53361 
53362 
53363 
53364   public:
53365     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
53366     void* pNext = {};
53367     uint32_t physicalDeviceCount = {};
53368     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
53369     VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
53370 
53371   };
53372   static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" );
53373   static_assert( std::is_standard_layout<PhysicalDeviceGroupProperties>::value, "struct wrapper is not a standard layout!" );
53374 
53375   template <>
53376   struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
53377   {
53378     using Type = PhysicalDeviceGroupProperties;
53379   };
53380 
53381   struct PhysicalDeviceHostQueryResetFeatures
53382   {
53383     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
53384 
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53385     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {} ) VULKAN_HPP_NOEXCEPT
53386       : hostQueryReset( hostQueryReset_ )
53387     {}
53388 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53389     PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53390     {
53391       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceHostQueryResetFeatures ) - offsetof( PhysicalDeviceHostQueryResetFeatures, pNext ) );
53392       return *this;
53393     }
53394 
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53395     PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53396     {
53397       *this = rhs;
53398     }
53399 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53400     PhysicalDeviceHostQueryResetFeatures& operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53401     {
53402       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>(&rhs);
53403       return *this;
53404     }
53405 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53406     PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
53407     {
53408       pNext = pNext_;
53409       return *this;
53410     }
53411 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53412     PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
53413     {
53414       hostQueryReset = hostQueryReset_;
53415       return *this;
53416     }
53417 
53418 
operator VkPhysicalDeviceHostQueryResetFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53419     operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT
53420     {
53421       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>( this );
53422     }
53423 
operator VkPhysicalDeviceHostQueryResetFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53424     operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
53425     {
53426       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>( this );
53427     }
53428 
53429 
53430 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53431     auto operator<=>( PhysicalDeviceHostQueryResetFeatures const& ) const = default;
53432 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53433     bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
53434     {
53435       return ( sType == rhs.sType )
53436           && ( pNext == rhs.pNext )
53437           && ( hostQueryReset == rhs.hostQueryReset );
53438     }
53439 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures53440     bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
53441     {
53442       return !operator==( rhs );
53443     }
53444 #endif
53445 
53446 
53447 
53448   public:
53449     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
53450     void* pNext = {};
53451     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
53452 
53453   };
53454   static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" );
53455   static_assert( std::is_standard_layout<PhysicalDeviceHostQueryResetFeatures>::value, "struct wrapper is not a standard layout!" );
53456 
53457   template <>
53458   struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
53459   {
53460     using Type = PhysicalDeviceHostQueryResetFeatures;
53461   };
53462 
53463   struct PhysicalDeviceIDProperties
53464   {
53465     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
53466 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53467     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( std::array<uint8_t,VK_UUID_SIZE> const& deviceUUID_ = {},
53468                                                         std::array<uint8_t,VK_UUID_SIZE> const& driverUUID_ = {},
53469                                                         std::array<uint8_t,VK_LUID_SIZE> const& deviceLUID_ = {},
53470                                                         uint32_t deviceNodeMask_ = {},
53471                                                         VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {} ) VULKAN_HPP_NOEXCEPT
53472       : deviceUUID( deviceUUID_ )
53473       , driverUUID( driverUUID_ )
53474       , deviceLUID( deviceLUID_ )
53475       , deviceNodeMask( deviceNodeMask_ )
53476       , deviceLUIDValid( deviceLUIDValid_ )
53477     {}
53478 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53479     PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53480     {
53481       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceIDProperties ) - offsetof( PhysicalDeviceIDProperties, pNext ) );
53482       return *this;
53483     }
53484 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53485     PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53486     {
53487       *this = rhs;
53488     }
53489 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53490     PhysicalDeviceIDProperties& operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53491     {
53492       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>(&rhs);
53493       return *this;
53494     }
53495 
53496 
operator VkPhysicalDeviceIDProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53497     operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT
53498     {
53499       return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
53500     }
53501 
operator VkPhysicalDeviceIDProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53502     operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
53503     {
53504       return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
53505     }
53506 
53507 
53508 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53509     auto operator<=>( PhysicalDeviceIDProperties const& ) const = default;
53510 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53511     bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53512     {
53513       return ( sType == rhs.sType )
53514           && ( pNext == rhs.pNext )
53515           && ( deviceUUID == rhs.deviceUUID )
53516           && ( driverUUID == rhs.driverUUID )
53517           && ( deviceLUID == rhs.deviceLUID )
53518           && ( deviceNodeMask == rhs.deviceNodeMask )
53519           && ( deviceLUIDValid == rhs.deviceLUIDValid );
53520     }
53521 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties53522     bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53523     {
53524       return !operator==( rhs );
53525     }
53526 #endif
53527 
53528 
53529 
53530   public:
53531     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
53532     void* pNext = {};
53533     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
53534     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
53535     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
53536     uint32_t deviceNodeMask = {};
53537     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
53538 
53539   };
53540   static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" );
53541   static_assert( std::is_standard_layout<PhysicalDeviceIDProperties>::value, "struct wrapper is not a standard layout!" );
53542 
53543   template <>
53544   struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
53545   {
53546     using Type = PhysicalDeviceIDProperties;
53547   };
53548 
53549   struct PhysicalDeviceImageDrmFormatModifierInfoEXT
53550   {
53551     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
53552 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53553     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_ = {},
53554                                                                       VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
53555                                                                       uint32_t queueFamilyIndexCount_ = {},
53556                                                                       const uint32_t* pQueueFamilyIndices_ = {} ) VULKAN_HPP_NOEXCEPT
53557       : drmFormatModifier( drmFormatModifier_ )
53558       , sharingMode( sharingMode_ )
53559       , queueFamilyIndexCount( queueFamilyIndexCount_ )
53560       , pQueueFamilyIndices( pQueueFamilyIndices_ )
53561     {}
53562 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53563     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53564     {
53565       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) - offsetof( PhysicalDeviceImageDrmFormatModifierInfoEXT, pNext ) );
53566       return *this;
53567     }
53568 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53569     PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53570     {
53571       *this = rhs;
53572     }
53573 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53574     PhysicalDeviceImageDrmFormatModifierInfoEXT& operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53575     {
53576       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>(&rhs);
53577       return *this;
53578     }
53579 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53580     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53581     {
53582       pNext = pNext_;
53583       return *this;
53584     }
53585 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53586     PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
53587     {
53588       drmFormatModifier = drmFormatModifier_;
53589       return *this;
53590     }
53591 
setSharingModeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53592     PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
53593     {
53594       sharingMode = sharingMode_;
53595       return *this;
53596     }
53597 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53598     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
53599     {
53600       queueFamilyIndexCount = queueFamilyIndexCount_;
53601       return *this;
53602     }
53603 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53604     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
53605     {
53606       pQueueFamilyIndices = pQueueFamilyIndices_;
53607       return *this;
53608     }
53609 
53610 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53611     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT
53612     {
53613       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
53614     }
53615 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53616     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
53617     {
53618       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
53619     }
53620 
53621 
53622 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53623     auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const& ) const = default;
53624 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53625     bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53626     {
53627       return ( sType == rhs.sType )
53628           && ( pNext == rhs.pNext )
53629           && ( drmFormatModifier == rhs.drmFormatModifier )
53630           && ( sharingMode == rhs.sharingMode )
53631           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
53632           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
53633     }
53634 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT53635     bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT 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::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
53645     const void* pNext = {};
53646     uint64_t drmFormatModifier = {};
53647     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
53648     uint32_t queueFamilyIndexCount = {};
53649     const uint32_t* pQueueFamilyIndices = {};
53650 
53651   };
53652   static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" );
53653   static_assert( std::is_standard_layout<PhysicalDeviceImageDrmFormatModifierInfoEXT>::value, "struct wrapper is not a standard layout!" );
53654 
53655   template <>
53656   struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
53657   {
53658     using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
53659   };
53660 
53661   struct PhysicalDeviceImageFormatInfo2
53662   {
53663     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
53664 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253665     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
53666                                                          VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
53667                                                          VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
53668                                                          VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
53669                                                          VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
53670       : format( format_ )
53671       , type( type_ )
53672       , tiling( tiling_ )
53673       , usage( usage_ )
53674       , flags( flags_ )
53675     {}
53676 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253677     PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53678     {
53679       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceImageFormatInfo2 ) - offsetof( PhysicalDeviceImageFormatInfo2, pNext ) );
53680       return *this;
53681     }
53682 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253683     PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53684     {
53685       *this = rhs;
53686     }
53687 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253688     PhysicalDeviceImageFormatInfo2& operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53689     {
53690       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>(&rhs);
53691       return *this;
53692     }
53693 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253694     PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53695     {
53696       pNext = pNext_;
53697       return *this;
53698     }
53699 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253700     PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
53701     {
53702       format = format_;
53703       return *this;
53704     }
53705 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253706     PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
53707     {
53708       type = type_;
53709       return *this;
53710     }
53711 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253712     PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
53713     {
53714       tiling = tiling_;
53715       return *this;
53716     }
53717 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253718     PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
53719     {
53720       usage = usage_;
53721       return *this;
53722     }
53723 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253724     PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
53725     {
53726       flags = flags_;
53727       return *this;
53728     }
53729 
53730 
operator VkPhysicalDeviceImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253731     operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
53732     {
53733       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
53734     }
53735 
operator VkPhysicalDeviceImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253736     operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
53737     {
53738       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
53739     }
53740 
53741 
53742 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53743     auto operator<=>( PhysicalDeviceImageFormatInfo2 const& ) const = default;
53744 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253745     bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53746     {
53747       return ( sType == rhs.sType )
53748           && ( pNext == rhs.pNext )
53749           && ( format == rhs.format )
53750           && ( type == rhs.type )
53751           && ( tiling == rhs.tiling )
53752           && ( usage == rhs.usage )
53753           && ( flags == rhs.flags );
53754     }
53755 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253756     bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53757     {
53758       return !operator==( rhs );
53759     }
53760 #endif
53761 
53762 
53763 
53764   public:
53765     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
53766     const void* pNext = {};
53767     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
53768     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
53769     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
53770     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
53771     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
53772 
53773   };
53774   static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" );
53775   static_assert( std::is_standard_layout<PhysicalDeviceImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
53776 
53777   template <>
53778   struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
53779   {
53780     using Type = PhysicalDeviceImageFormatInfo2;
53781   };
53782 
53783   struct PhysicalDeviceImageViewImageFormatInfoEXT
53784   {
53785     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
53786 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53787     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D ) VULKAN_HPP_NOEXCEPT
53788       : imageViewType( imageViewType_ )
53789     {}
53790 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53791     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53792     {
53793       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) - offsetof( PhysicalDeviceImageViewImageFormatInfoEXT, pNext ) );
53794       return *this;
53795     }
53796 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53797     PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53798     {
53799       *this = rhs;
53800     }
53801 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53802     PhysicalDeviceImageViewImageFormatInfoEXT& operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53803     {
53804       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>(&rhs);
53805       return *this;
53806     }
53807 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53808     PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
53809     {
53810       pNext = pNext_;
53811       return *this;
53812     }
53813 
setImageViewTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53814     PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
53815     {
53816       imageViewType = imageViewType_;
53817       return *this;
53818     }
53819 
53820 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53821     operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT
53822     {
53823       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
53824     }
53825 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53826     operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
53827     {
53828       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
53829     }
53830 
53831 
53832 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53833     auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const& ) const = default;
53834 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53835     bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53836     {
53837       return ( sType == rhs.sType )
53838           && ( pNext == rhs.pNext )
53839           && ( imageViewType == rhs.imageViewType );
53840     }
53841 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT53842     bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53843     {
53844       return !operator==( rhs );
53845     }
53846 #endif
53847 
53848 
53849 
53850   public:
53851     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
53852     void* pNext = {};
53853     VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
53854 
53855   };
53856   static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" );
53857   static_assert( std::is_standard_layout<PhysicalDeviceImageViewImageFormatInfoEXT>::value, "struct wrapper is not a standard layout!" );
53858 
53859   template <>
53860   struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
53861   {
53862     using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
53863   };
53864 
53865   struct PhysicalDeviceImagelessFramebufferFeatures
53866   {
53867     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
53868 
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53869     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {} ) VULKAN_HPP_NOEXCEPT
53870       : imagelessFramebuffer( imagelessFramebuffer_ )
53871     {}
53872 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53873     PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53874     {
53875       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceImagelessFramebufferFeatures ) - offsetof( PhysicalDeviceImagelessFramebufferFeatures, pNext ) );
53876       return *this;
53877     }
53878 
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53879     PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53880     {
53881       *this = rhs;
53882     }
53883 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53884     PhysicalDeviceImagelessFramebufferFeatures& operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53885     {
53886       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>(&rhs);
53887       return *this;
53888     }
53889 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53890     PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
53891     {
53892       pNext = pNext_;
53893       return *this;
53894     }
53895 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53896     PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
53897     {
53898       imagelessFramebuffer = imagelessFramebuffer_;
53899       return *this;
53900     }
53901 
53902 
operator VkPhysicalDeviceImagelessFramebufferFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53903     operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT
53904     {
53905       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
53906     }
53907 
operator VkPhysicalDeviceImagelessFramebufferFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53908     operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
53909     {
53910       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
53911     }
53912 
53913 
53914 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53915     auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const& ) const = default;
53916 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53917     bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
53918     {
53919       return ( sType == rhs.sType )
53920           && ( pNext == rhs.pNext )
53921           && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
53922     }
53923 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures53924     bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
53925     {
53926       return !operator==( rhs );
53927     }
53928 #endif
53929 
53930 
53931 
53932   public:
53933     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
53934     void* pNext = {};
53935     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
53936 
53937   };
53938   static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" );
53939   static_assert( std::is_standard_layout<PhysicalDeviceImagelessFramebufferFeatures>::value, "struct wrapper is not a standard layout!" );
53940 
53941   template <>
53942   struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
53943   {
53944     using Type = PhysicalDeviceImagelessFramebufferFeatures;
53945   };
53946 
53947   struct PhysicalDeviceIndexTypeUint8FeaturesEXT
53948   {
53949     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
53950 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53951     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {} ) VULKAN_HPP_NOEXCEPT
53952       : indexTypeUint8( indexTypeUint8_ )
53953     {}
53954 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53955     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53956     {
53957       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) - offsetof( PhysicalDeviceIndexTypeUint8FeaturesEXT, pNext ) );
53958       return *this;
53959     }
53960 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53961     PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53962     {
53963       *this = rhs;
53964     }
53965 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53966     PhysicalDeviceIndexTypeUint8FeaturesEXT& operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53967     {
53968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>(&rhs);
53969       return *this;
53970     }
53971 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53972     PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
53973     {
53974       pNext = pNext_;
53975       return *this;
53976     }
53977 
setIndexTypeUint8VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53978     PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
53979     {
53980       indexTypeUint8 = indexTypeUint8_;
53981       return *this;
53982     }
53983 
53984 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53985     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
53986     {
53987       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
53988     }
53989 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53990     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
53991     {
53992       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
53993     }
53994 
53995 
53996 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53997     auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const& ) const = default;
53998 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT53999     bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54000     {
54001       return ( sType == rhs.sType )
54002           && ( pNext == rhs.pNext )
54003           && ( indexTypeUint8 == rhs.indexTypeUint8 );
54004     }
54005 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT54006     bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54007     {
54008       return !operator==( rhs );
54009     }
54010 #endif
54011 
54012 
54013 
54014   public:
54015     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
54016     void* pNext = {};
54017     VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
54018 
54019   };
54020   static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" );
54021   static_assert( std::is_standard_layout<PhysicalDeviceIndexTypeUint8FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
54022 
54023   template <>
54024   struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
54025   {
54026     using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
54027   };
54028 
54029   struct PhysicalDeviceInlineUniformBlockFeaturesEXT
54030   {
54031     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
54032 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54033     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {},
54034                                                                       VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {} ) VULKAN_HPP_NOEXCEPT
54035       : inlineUniformBlock( inlineUniformBlock_ )
54036       , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
54037     {}
54038 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54039     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54040     {
54041       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) - offsetof( PhysicalDeviceInlineUniformBlockFeaturesEXT, pNext ) );
54042       return *this;
54043     }
54044 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54045     PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54046     {
54047       *this = rhs;
54048     }
54049 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54050     PhysicalDeviceInlineUniformBlockFeaturesEXT& operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54051     {
54052       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT const *>(&rhs);
54053       return *this;
54054     }
54055 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54056     PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
54057     {
54058       pNext = pNext_;
54059       return *this;
54060     }
54061 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54062     PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
54063     {
54064       inlineUniformBlock = inlineUniformBlock_;
54065       return *this;
54066     }
54067 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54068     PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
54069     {
54070       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
54071       return *this;
54072     }
54073 
54074 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54075     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
54076     {
54077       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
54078     }
54079 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54080     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
54081     {
54082       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
54083     }
54084 
54085 
54086 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54087     auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const& ) const = default;
54088 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54089     bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54090     {
54091       return ( sType == rhs.sType )
54092           && ( pNext == rhs.pNext )
54093           && ( inlineUniformBlock == rhs.inlineUniformBlock )
54094           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
54095     }
54096 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT54097     bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54098     {
54099       return !operator==( rhs );
54100     }
54101 #endif
54102 
54103 
54104 
54105   public:
54106     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
54107     void* pNext = {};
54108     VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
54109     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
54110 
54111   };
54112   static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" );
54113   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
54114 
54115   template <>
54116   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT>
54117   {
54118     using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT;
54119   };
54120 
54121   struct PhysicalDeviceInlineUniformBlockPropertiesEXT
54122   {
54123     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
54124 
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54125     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( uint32_t maxInlineUniformBlockSize_ = {},
54126                                                                         uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {},
54127                                                                         uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {},
54128                                                                         uint32_t maxDescriptorSetInlineUniformBlocks_ = {},
54129                                                                         uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {} ) VULKAN_HPP_NOEXCEPT
54130       : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
54131       , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
54132       , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
54133       , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
54134       , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
54135     {}
54136 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54137     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54138     {
54139       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) - offsetof( PhysicalDeviceInlineUniformBlockPropertiesEXT, pNext ) );
54140       return *this;
54141     }
54142 
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54143     PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54144     {
54145       *this = rhs;
54146     }
54147 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54148     PhysicalDeviceInlineUniformBlockPropertiesEXT& operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54149     {
54150       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT const *>(&rhs);
54151       return *this;
54152     }
54153 
54154 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54155     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
54156     {
54157       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
54158     }
54159 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54160     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT
54161     {
54162       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
54163     }
54164 
54165 
54166 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54167     auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const& ) const = default;
54168 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54169     bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54170     {
54171       return ( sType == rhs.sType )
54172           && ( pNext == rhs.pNext )
54173           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
54174           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
54175           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
54176           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
54177           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
54178     }
54179 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT54180     bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54181     {
54182       return !operator==( rhs );
54183     }
54184 #endif
54185 
54186 
54187 
54188   public:
54189     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
54190     void* pNext = {};
54191     uint32_t maxInlineUniformBlockSize = {};
54192     uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
54193     uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
54194     uint32_t maxDescriptorSetInlineUniformBlocks = {};
54195     uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
54196 
54197   };
54198   static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" );
54199   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
54200 
54201   template <>
54202   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT>
54203   {
54204     using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT;
54205   };
54206 
54207   struct PhysicalDeviceLimits
54208   {
54209 
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits54210     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( uint32_t maxImageDimension1D_ = {},
54211                                                   uint32_t maxImageDimension2D_ = {},
54212                                                   uint32_t maxImageDimension3D_ = {},
54213                                                   uint32_t maxImageDimensionCube_ = {},
54214                                                   uint32_t maxImageArrayLayers_ = {},
54215                                                   uint32_t maxTexelBufferElements_ = {},
54216                                                   uint32_t maxUniformBufferRange_ = {},
54217                                                   uint32_t maxStorageBufferRange_ = {},
54218                                                   uint32_t maxPushConstantsSize_ = {},
54219                                                   uint32_t maxMemoryAllocationCount_ = {},
54220                                                   uint32_t maxSamplerAllocationCount_ = {},
54221                                                   VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {},
54222                                                   VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {},
54223                                                   uint32_t maxBoundDescriptorSets_ = {},
54224                                                   uint32_t maxPerStageDescriptorSamplers_ = {},
54225                                                   uint32_t maxPerStageDescriptorUniformBuffers_ = {},
54226                                                   uint32_t maxPerStageDescriptorStorageBuffers_ = {},
54227                                                   uint32_t maxPerStageDescriptorSampledImages_ = {},
54228                                                   uint32_t maxPerStageDescriptorStorageImages_ = {},
54229                                                   uint32_t maxPerStageDescriptorInputAttachments_ = {},
54230                                                   uint32_t maxPerStageResources_ = {},
54231                                                   uint32_t maxDescriptorSetSamplers_ = {},
54232                                                   uint32_t maxDescriptorSetUniformBuffers_ = {},
54233                                                   uint32_t maxDescriptorSetUniformBuffersDynamic_ = {},
54234                                                   uint32_t maxDescriptorSetStorageBuffers_ = {},
54235                                                   uint32_t maxDescriptorSetStorageBuffersDynamic_ = {},
54236                                                   uint32_t maxDescriptorSetSampledImages_ = {},
54237                                                   uint32_t maxDescriptorSetStorageImages_ = {},
54238                                                   uint32_t maxDescriptorSetInputAttachments_ = {},
54239                                                   uint32_t maxVertexInputAttributes_ = {},
54240                                                   uint32_t maxVertexInputBindings_ = {},
54241                                                   uint32_t maxVertexInputAttributeOffset_ = {},
54242                                                   uint32_t maxVertexInputBindingStride_ = {},
54243                                                   uint32_t maxVertexOutputComponents_ = {},
54244                                                   uint32_t maxTessellationGenerationLevel_ = {},
54245                                                   uint32_t maxTessellationPatchSize_ = {},
54246                                                   uint32_t maxTessellationControlPerVertexInputComponents_ = {},
54247                                                   uint32_t maxTessellationControlPerVertexOutputComponents_ = {},
54248                                                   uint32_t maxTessellationControlPerPatchOutputComponents_ = {},
54249                                                   uint32_t maxTessellationControlTotalOutputComponents_ = {},
54250                                                   uint32_t maxTessellationEvaluationInputComponents_ = {},
54251                                                   uint32_t maxTessellationEvaluationOutputComponents_ = {},
54252                                                   uint32_t maxGeometryShaderInvocations_ = {},
54253                                                   uint32_t maxGeometryInputComponents_ = {},
54254                                                   uint32_t maxGeometryOutputComponents_ = {},
54255                                                   uint32_t maxGeometryOutputVertices_ = {},
54256                                                   uint32_t maxGeometryTotalOutputComponents_ = {},
54257                                                   uint32_t maxFragmentInputComponents_ = {},
54258                                                   uint32_t maxFragmentOutputAttachments_ = {},
54259                                                   uint32_t maxFragmentDualSrcAttachments_ = {},
54260                                                   uint32_t maxFragmentCombinedOutputResources_ = {},
54261                                                   uint32_t maxComputeSharedMemorySize_ = {},
54262                                                   std::array<uint32_t,3> const& maxComputeWorkGroupCount_ = {},
54263                                                   uint32_t maxComputeWorkGroupInvocations_ = {},
54264                                                   std::array<uint32_t,3> const& maxComputeWorkGroupSize_ = {},
54265                                                   uint32_t subPixelPrecisionBits_ = {},
54266                                                   uint32_t subTexelPrecisionBits_ = {},
54267                                                   uint32_t mipmapPrecisionBits_ = {},
54268                                                   uint32_t maxDrawIndexedIndexValue_ = {},
54269                                                   uint32_t maxDrawIndirectCount_ = {},
54270                                                   float maxSamplerLodBias_ = {},
54271                                                   float maxSamplerAnisotropy_ = {},
54272                                                   uint32_t maxViewports_ = {},
54273                                                   std::array<uint32_t,2> const& maxViewportDimensions_ = {},
54274                                                   std::array<float,2> const& viewportBoundsRange_ = {},
54275                                                   uint32_t viewportSubPixelBits_ = {},
54276                                                   size_t minMemoryMapAlignment_ = {},
54277                                                   VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {},
54278                                                   VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {},
54279                                                   VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {},
54280                                                   int32_t minTexelOffset_ = {},
54281                                                   uint32_t maxTexelOffset_ = {},
54282                                                   int32_t minTexelGatherOffset_ = {},
54283                                                   uint32_t maxTexelGatherOffset_ = {},
54284                                                   float minInterpolationOffset_ = {},
54285                                                   float maxInterpolationOffset_ = {},
54286                                                   uint32_t subPixelInterpolationOffsetBits_ = {},
54287                                                   uint32_t maxFramebufferWidth_ = {},
54288                                                   uint32_t maxFramebufferHeight_ = {},
54289                                                   uint32_t maxFramebufferLayers_ = {},
54290                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {},
54291                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {},
54292                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {},
54293                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {},
54294                                                   uint32_t maxColorAttachments_ = {},
54295                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {},
54296                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {},
54297                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {},
54298                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {},
54299                                                   VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {},
54300                                                   uint32_t maxSampleMaskWords_ = {},
54301                                                   VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {},
54302                                                   float timestampPeriod_ = {},
54303                                                   uint32_t maxClipDistances_ = {},
54304                                                   uint32_t maxCullDistances_ = {},
54305                                                   uint32_t maxCombinedClipAndCullDistances_ = {},
54306                                                   uint32_t discreteQueuePriorities_ = {},
54307                                                   std::array<float,2> const& pointSizeRange_ = {},
54308                                                   std::array<float,2> const& lineWidthRange_ = {},
54309                                                   float pointSizeGranularity_ = {},
54310                                                   float lineWidthGranularity_ = {},
54311                                                   VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {},
54312                                                   VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {},
54313                                                   VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {},
54314                                                   VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {},
54315                                                   VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {} ) VULKAN_HPP_NOEXCEPT
54316       : maxImageDimension1D( maxImageDimension1D_ )
54317       , maxImageDimension2D( maxImageDimension2D_ )
54318       , maxImageDimension3D( maxImageDimension3D_ )
54319       , maxImageDimensionCube( maxImageDimensionCube_ )
54320       , maxImageArrayLayers( maxImageArrayLayers_ )
54321       , maxTexelBufferElements( maxTexelBufferElements_ )
54322       , maxUniformBufferRange( maxUniformBufferRange_ )
54323       , maxStorageBufferRange( maxStorageBufferRange_ )
54324       , maxPushConstantsSize( maxPushConstantsSize_ )
54325       , maxMemoryAllocationCount( maxMemoryAllocationCount_ )
54326       , maxSamplerAllocationCount( maxSamplerAllocationCount_ )
54327       , bufferImageGranularity( bufferImageGranularity_ )
54328       , sparseAddressSpaceSize( sparseAddressSpaceSize_ )
54329       , maxBoundDescriptorSets( maxBoundDescriptorSets_ )
54330       , maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ )
54331       , maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ )
54332       , maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ )
54333       , maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ )
54334       , maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ )
54335       , maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ )
54336       , maxPerStageResources( maxPerStageResources_ )
54337       , maxDescriptorSetSamplers( maxDescriptorSetSamplers_ )
54338       , maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ )
54339       , maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ )
54340       , maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ )
54341       , maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ )
54342       , maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ )
54343       , maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ )
54344       , maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ )
54345       , maxVertexInputAttributes( maxVertexInputAttributes_ )
54346       , maxVertexInputBindings( maxVertexInputBindings_ )
54347       , maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ )
54348       , maxVertexInputBindingStride( maxVertexInputBindingStride_ )
54349       , maxVertexOutputComponents( maxVertexOutputComponents_ )
54350       , maxTessellationGenerationLevel( maxTessellationGenerationLevel_ )
54351       , maxTessellationPatchSize( maxTessellationPatchSize_ )
54352       , maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ )
54353       , maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ )
54354       , maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ )
54355       , maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ )
54356       , maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ )
54357       , maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ )
54358       , maxGeometryShaderInvocations( maxGeometryShaderInvocations_ )
54359       , maxGeometryInputComponents( maxGeometryInputComponents_ )
54360       , maxGeometryOutputComponents( maxGeometryOutputComponents_ )
54361       , maxGeometryOutputVertices( maxGeometryOutputVertices_ )
54362       , maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ )
54363       , maxFragmentInputComponents( maxFragmentInputComponents_ )
54364       , maxFragmentOutputAttachments( maxFragmentOutputAttachments_ )
54365       , maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ )
54366       , maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ )
54367       , maxComputeSharedMemorySize( maxComputeSharedMemorySize_ )
54368       , maxComputeWorkGroupCount( maxComputeWorkGroupCount_ )
54369       , maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ )
54370       , maxComputeWorkGroupSize( maxComputeWorkGroupSize_ )
54371       , subPixelPrecisionBits( subPixelPrecisionBits_ )
54372       , subTexelPrecisionBits( subTexelPrecisionBits_ )
54373       , mipmapPrecisionBits( mipmapPrecisionBits_ )
54374       , maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ )
54375       , maxDrawIndirectCount( maxDrawIndirectCount_ )
54376       , maxSamplerLodBias( maxSamplerLodBias_ )
54377       , maxSamplerAnisotropy( maxSamplerAnisotropy_ )
54378       , maxViewports( maxViewports_ )
54379       , maxViewportDimensions( maxViewportDimensions_ )
54380       , viewportBoundsRange( viewportBoundsRange_ )
54381       , viewportSubPixelBits( viewportSubPixelBits_ )
54382       , minMemoryMapAlignment( minMemoryMapAlignment_ )
54383       , minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ )
54384       , minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ )
54385       , minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ )
54386       , minTexelOffset( minTexelOffset_ )
54387       , maxTexelOffset( maxTexelOffset_ )
54388       , minTexelGatherOffset( minTexelGatherOffset_ )
54389       , maxTexelGatherOffset( maxTexelGatherOffset_ )
54390       , minInterpolationOffset( minInterpolationOffset_ )
54391       , maxInterpolationOffset( maxInterpolationOffset_ )
54392       , subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ )
54393       , maxFramebufferWidth( maxFramebufferWidth_ )
54394       , maxFramebufferHeight( maxFramebufferHeight_ )
54395       , maxFramebufferLayers( maxFramebufferLayers_ )
54396       , framebufferColorSampleCounts( framebufferColorSampleCounts_ )
54397       , framebufferDepthSampleCounts( framebufferDepthSampleCounts_ )
54398       , framebufferStencilSampleCounts( framebufferStencilSampleCounts_ )
54399       , framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ )
54400       , maxColorAttachments( maxColorAttachments_ )
54401       , sampledImageColorSampleCounts( sampledImageColorSampleCounts_ )
54402       , sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ )
54403       , sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ )
54404       , sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ )
54405       , storageImageSampleCounts( storageImageSampleCounts_ )
54406       , maxSampleMaskWords( maxSampleMaskWords_ )
54407       , timestampComputeAndGraphics( timestampComputeAndGraphics_ )
54408       , timestampPeriod( timestampPeriod_ )
54409       , maxClipDistances( maxClipDistances_ )
54410       , maxCullDistances( maxCullDistances_ )
54411       , maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ )
54412       , discreteQueuePriorities( discreteQueuePriorities_ )
54413       , pointSizeRange( pointSizeRange_ )
54414       , lineWidthRange( lineWidthRange_ )
54415       , pointSizeGranularity( pointSizeGranularity_ )
54416       , lineWidthGranularity( lineWidthGranularity_ )
54417       , strictLines( strictLines_ )
54418       , standardSampleLocations( standardSampleLocations_ )
54419       , optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ )
54420       , optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ )
54421       , nonCoherentAtomSize( nonCoherentAtomSize_ )
54422     {}
54423 
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits54424     PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
54425     {
54426       *this = rhs;
54427     }
54428 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits54429     PhysicalDeviceLimits& operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
54430     {
54431       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>(&rhs);
54432       return *this;
54433     }
54434 
54435 
operator VkPhysicalDeviceLimits const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits54436     operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT
54437     {
54438       return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
54439     }
54440 
operator VkPhysicalDeviceLimits&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits54441     operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
54442     {
54443       return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
54444     }
54445 
54446 
54447 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54448     auto operator<=>( PhysicalDeviceLimits const& ) const = default;
54449 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits54450     bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
54451     {
54452       return ( maxImageDimension1D == rhs.maxImageDimension1D )
54453           && ( maxImageDimension2D == rhs.maxImageDimension2D )
54454           && ( maxImageDimension3D == rhs.maxImageDimension3D )
54455           && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
54456           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
54457           && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
54458           && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
54459           && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
54460           && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
54461           && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
54462           && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
54463           && ( bufferImageGranularity == rhs.bufferImageGranularity )
54464           && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
54465           && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
54466           && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
54467           && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
54468           && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
54469           && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
54470           && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
54471           && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
54472           && ( maxPerStageResources == rhs.maxPerStageResources )
54473           && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
54474           && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
54475           && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
54476           && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
54477           && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
54478           && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
54479           && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
54480           && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
54481           && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
54482           && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
54483           && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
54484           && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
54485           && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
54486           && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
54487           && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
54488           && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
54489           && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
54490           && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
54491           && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
54492           && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
54493           && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
54494           && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
54495           && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
54496           && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
54497           && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
54498           && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
54499           && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
54500           && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
54501           && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
54502           && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
54503           && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
54504           && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount )
54505           && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
54506           && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize )
54507           && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
54508           && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
54509           && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
54510           && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
54511           && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
54512           && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
54513           && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
54514           && ( maxViewports == rhs.maxViewports )
54515           && ( maxViewportDimensions == rhs.maxViewportDimensions )
54516           && ( viewportBoundsRange == rhs.viewportBoundsRange )
54517           && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
54518           && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
54519           && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
54520           && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
54521           && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
54522           && ( minTexelOffset == rhs.minTexelOffset )
54523           && ( maxTexelOffset == rhs.maxTexelOffset )
54524           && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
54525           && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
54526           && ( minInterpolationOffset == rhs.minInterpolationOffset )
54527           && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
54528           && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
54529           && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
54530           && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
54531           && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
54532           && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
54533           && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
54534           && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
54535           && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
54536           && ( maxColorAttachments == rhs.maxColorAttachments )
54537           && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
54538           && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
54539           && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
54540           && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
54541           && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
54542           && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
54543           && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
54544           && ( timestampPeriod == rhs.timestampPeriod )
54545           && ( maxClipDistances == rhs.maxClipDistances )
54546           && ( maxCullDistances == rhs.maxCullDistances )
54547           && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
54548           && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
54549           && ( pointSizeRange == rhs.pointSizeRange )
54550           && ( lineWidthRange == rhs.lineWidthRange )
54551           && ( pointSizeGranularity == rhs.pointSizeGranularity )
54552           && ( lineWidthGranularity == rhs.lineWidthGranularity )
54553           && ( strictLines == rhs.strictLines )
54554           && ( standardSampleLocations == rhs.standardSampleLocations )
54555           && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
54556           && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
54557           && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
54558     }
54559 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits54560     bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
54561     {
54562       return !operator==( rhs );
54563     }
54564 #endif
54565 
54566 
54567 
54568   public:
54569     uint32_t maxImageDimension1D = {};
54570     uint32_t maxImageDimension2D = {};
54571     uint32_t maxImageDimension3D = {};
54572     uint32_t maxImageDimensionCube = {};
54573     uint32_t maxImageArrayLayers = {};
54574     uint32_t maxTexelBufferElements = {};
54575     uint32_t maxUniformBufferRange = {};
54576     uint32_t maxStorageBufferRange = {};
54577     uint32_t maxPushConstantsSize = {};
54578     uint32_t maxMemoryAllocationCount = {};
54579     uint32_t maxSamplerAllocationCount = {};
54580     VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
54581     VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
54582     uint32_t maxBoundDescriptorSets = {};
54583     uint32_t maxPerStageDescriptorSamplers = {};
54584     uint32_t maxPerStageDescriptorUniformBuffers = {};
54585     uint32_t maxPerStageDescriptorStorageBuffers = {};
54586     uint32_t maxPerStageDescriptorSampledImages = {};
54587     uint32_t maxPerStageDescriptorStorageImages = {};
54588     uint32_t maxPerStageDescriptorInputAttachments = {};
54589     uint32_t maxPerStageResources = {};
54590     uint32_t maxDescriptorSetSamplers = {};
54591     uint32_t maxDescriptorSetUniformBuffers = {};
54592     uint32_t maxDescriptorSetUniformBuffersDynamic = {};
54593     uint32_t maxDescriptorSetStorageBuffers = {};
54594     uint32_t maxDescriptorSetStorageBuffersDynamic = {};
54595     uint32_t maxDescriptorSetSampledImages = {};
54596     uint32_t maxDescriptorSetStorageImages = {};
54597     uint32_t maxDescriptorSetInputAttachments = {};
54598     uint32_t maxVertexInputAttributes = {};
54599     uint32_t maxVertexInputBindings = {};
54600     uint32_t maxVertexInputAttributeOffset = {};
54601     uint32_t maxVertexInputBindingStride = {};
54602     uint32_t maxVertexOutputComponents = {};
54603     uint32_t maxTessellationGenerationLevel = {};
54604     uint32_t maxTessellationPatchSize = {};
54605     uint32_t maxTessellationControlPerVertexInputComponents = {};
54606     uint32_t maxTessellationControlPerVertexOutputComponents = {};
54607     uint32_t maxTessellationControlPerPatchOutputComponents = {};
54608     uint32_t maxTessellationControlTotalOutputComponents = {};
54609     uint32_t maxTessellationEvaluationInputComponents = {};
54610     uint32_t maxTessellationEvaluationOutputComponents = {};
54611     uint32_t maxGeometryShaderInvocations = {};
54612     uint32_t maxGeometryInputComponents = {};
54613     uint32_t maxGeometryOutputComponents = {};
54614     uint32_t maxGeometryOutputVertices = {};
54615     uint32_t maxGeometryTotalOutputComponents = {};
54616     uint32_t maxFragmentInputComponents = {};
54617     uint32_t maxFragmentOutputAttachments = {};
54618     uint32_t maxFragmentDualSrcAttachments = {};
54619     uint32_t maxFragmentCombinedOutputResources = {};
54620     uint32_t maxComputeSharedMemorySize = {};
54621     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
54622     uint32_t maxComputeWorkGroupInvocations = {};
54623     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
54624     uint32_t subPixelPrecisionBits = {};
54625     uint32_t subTexelPrecisionBits = {};
54626     uint32_t mipmapPrecisionBits = {};
54627     uint32_t maxDrawIndexedIndexValue = {};
54628     uint32_t maxDrawIndirectCount = {};
54629     float maxSamplerLodBias = {};
54630     float maxSamplerAnisotropy = {};
54631     uint32_t maxViewports = {};
54632     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
54633     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
54634     uint32_t viewportSubPixelBits = {};
54635     size_t minMemoryMapAlignment = {};
54636     VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
54637     VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
54638     VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
54639     int32_t minTexelOffset = {};
54640     uint32_t maxTexelOffset = {};
54641     int32_t minTexelGatherOffset = {};
54642     uint32_t maxTexelGatherOffset = {};
54643     float minInterpolationOffset = {};
54644     float maxInterpolationOffset = {};
54645     uint32_t subPixelInterpolationOffsetBits = {};
54646     uint32_t maxFramebufferWidth = {};
54647     uint32_t maxFramebufferHeight = {};
54648     uint32_t maxFramebufferLayers = {};
54649     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
54650     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
54651     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
54652     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
54653     uint32_t maxColorAttachments = {};
54654     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
54655     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
54656     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
54657     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
54658     VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
54659     uint32_t maxSampleMaskWords = {};
54660     VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
54661     float timestampPeriod = {};
54662     uint32_t maxClipDistances = {};
54663     uint32_t maxCullDistances = {};
54664     uint32_t maxCombinedClipAndCullDistances = {};
54665     uint32_t discreteQueuePriorities = {};
54666     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
54667     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
54668     float pointSizeGranularity = {};
54669     float lineWidthGranularity = {};
54670     VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
54671     VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
54672     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
54673     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
54674     VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
54675 
54676   };
54677   static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" );
54678   static_assert( std::is_standard_layout<PhysicalDeviceLimits>::value, "struct wrapper is not a standard layout!" );
54679 
54680   struct PhysicalDeviceLineRasterizationFeaturesEXT
54681   {
54682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
54683 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54684     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {},
54685                                                                      VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {},
54686                                                                      VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {},
54687                                                                      VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {},
54688                                                                      VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {},
54689                                                                      VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {} ) VULKAN_HPP_NOEXCEPT
54690       : rectangularLines( rectangularLines_ )
54691       , bresenhamLines( bresenhamLines_ )
54692       , smoothLines( smoothLines_ )
54693       , stippledRectangularLines( stippledRectangularLines_ )
54694       , stippledBresenhamLines( stippledBresenhamLines_ )
54695       , stippledSmoothLines( stippledSmoothLines_ )
54696     {}
54697 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54698     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54699     {
54700       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) - offsetof( PhysicalDeviceLineRasterizationFeaturesEXT, pNext ) );
54701       return *this;
54702     }
54703 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54704     PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54705     {
54706       *this = rhs;
54707     }
54708 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54709     PhysicalDeviceLineRasterizationFeaturesEXT& operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54710     {
54711       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>(&rhs);
54712       return *this;
54713     }
54714 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54715     PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
54716     {
54717       pNext = pNext_;
54718       return *this;
54719     }
54720 
setRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54721     PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
54722     {
54723       rectangularLines = rectangularLines_;
54724       return *this;
54725     }
54726 
setBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54727     PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
54728     {
54729       bresenhamLines = bresenhamLines_;
54730       return *this;
54731     }
54732 
setSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54733     PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
54734     {
54735       smoothLines = smoothLines_;
54736       return *this;
54737     }
54738 
setStippledRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54739     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
54740     {
54741       stippledRectangularLines = stippledRectangularLines_;
54742       return *this;
54743     }
54744 
setStippledBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54745     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
54746     {
54747       stippledBresenhamLines = stippledBresenhamLines_;
54748       return *this;
54749     }
54750 
setStippledSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54751     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
54752     {
54753       stippledSmoothLines = stippledSmoothLines_;
54754       return *this;
54755     }
54756 
54757 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54758     operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
54759     {
54760       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
54761     }
54762 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54763     operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
54764     {
54765       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
54766     }
54767 
54768 
54769 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54770     auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const& ) const = default;
54771 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54772     bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54773     {
54774       return ( sType == rhs.sType )
54775           && ( pNext == rhs.pNext )
54776           && ( rectangularLines == rhs.rectangularLines )
54777           && ( bresenhamLines == rhs.bresenhamLines )
54778           && ( smoothLines == rhs.smoothLines )
54779           && ( stippledRectangularLines == rhs.stippledRectangularLines )
54780           && ( stippledBresenhamLines == rhs.stippledBresenhamLines )
54781           && ( stippledSmoothLines == rhs.stippledSmoothLines );
54782     }
54783 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT54784     bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54785     {
54786       return !operator==( rhs );
54787     }
54788 #endif
54789 
54790 
54791 
54792   public:
54793     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
54794     void* pNext = {};
54795     VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
54796     VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
54797     VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
54798     VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
54799     VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
54800     VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
54801 
54802   };
54803   static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" );
54804   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
54805 
54806   template <>
54807   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
54808   {
54809     using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
54810   };
54811 
54812   struct PhysicalDeviceLineRasterizationPropertiesEXT
54813   {
54814     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
54815 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54816     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( uint32_t lineSubPixelPrecisionBits_ = {} ) VULKAN_HPP_NOEXCEPT
54817       : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
54818     {}
54819 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54820     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54821     {
54822       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) - offsetof( PhysicalDeviceLineRasterizationPropertiesEXT, pNext ) );
54823       return *this;
54824     }
54825 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54826     PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54827     {
54828       *this = rhs;
54829     }
54830 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54831     PhysicalDeviceLineRasterizationPropertiesEXT& operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54832     {
54833       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>(&rhs);
54834       return *this;
54835     }
54836 
54837 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54838     operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
54839     {
54840       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
54841     }
54842 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54843     operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
54844     {
54845       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
54846     }
54847 
54848 
54849 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54850     auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const& ) const = default;
54851 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54852     bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54853     {
54854       return ( sType == rhs.sType )
54855           && ( pNext == rhs.pNext )
54856           && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
54857     }
54858 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT54859     bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54860     {
54861       return !operator==( rhs );
54862     }
54863 #endif
54864 
54865 
54866 
54867   public:
54868     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
54869     void* pNext = {};
54870     uint32_t lineSubPixelPrecisionBits = {};
54871 
54872   };
54873   static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
54874   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
54875 
54876   template <>
54877   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
54878   {
54879     using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
54880   };
54881 
54882   struct PhysicalDeviceMaintenance3Properties
54883   {
54884     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
54885 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54886     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( uint32_t maxPerSetDescriptors_ = {},
54887                                                                VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {} ) VULKAN_HPP_NOEXCEPT
54888       : maxPerSetDescriptors( maxPerSetDescriptors_ )
54889       , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
54890     {}
54891 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54892     PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
54893     {
54894       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMaintenance3Properties ) - offsetof( PhysicalDeviceMaintenance3Properties, pNext ) );
54895       return *this;
54896     }
54897 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54898     PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
54899     {
54900       *this = rhs;
54901     }
54902 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54903     PhysicalDeviceMaintenance3Properties& operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
54904     {
54905       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>(&rhs);
54906       return *this;
54907     }
54908 
54909 
operator VkPhysicalDeviceMaintenance3Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54910     operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT
54911     {
54912       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
54913     }
54914 
operator VkPhysicalDeviceMaintenance3Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54915     operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
54916     {
54917       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
54918     }
54919 
54920 
54921 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54922     auto operator<=>( PhysicalDeviceMaintenance3Properties const& ) const = default;
54923 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54924     bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
54925     {
54926       return ( sType == rhs.sType )
54927           && ( pNext == rhs.pNext )
54928           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
54929           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
54930     }
54931 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties54932     bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
54933     {
54934       return !operator==( rhs );
54935     }
54936 #endif
54937 
54938 
54939 
54940   public:
54941     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
54942     void* pNext = {};
54943     uint32_t maxPerSetDescriptors = {};
54944     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
54945 
54946   };
54947   static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" );
54948   static_assert( std::is_standard_layout<PhysicalDeviceMaintenance3Properties>::value, "struct wrapper is not a standard layout!" );
54949 
54950   template <>
54951   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
54952   {
54953     using Type = PhysicalDeviceMaintenance3Properties;
54954   };
54955 
54956   struct PhysicalDeviceMemoryBudgetPropertiesEXT
54957   {
54958     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
54959 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT54960     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( std::array<VULKAN_HPP_NAMESPACE::DeviceSize,VK_MAX_MEMORY_HEAPS> const& heapBudget_ = {},
54961                                                                      std::array<VULKAN_HPP_NAMESPACE::DeviceSize,VK_MAX_MEMORY_HEAPS> const& heapUsage_ = {} ) VULKAN_HPP_NOEXCEPT
54962       : heapBudget( heapBudget_ )
54963       , heapUsage( heapUsage_ )
54964     {}
54965 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT54966     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54967     {
54968       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) - offsetof( PhysicalDeviceMemoryBudgetPropertiesEXT, pNext ) );
54969       return *this;
54970     }
54971 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT54972     PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54973     {
54974       *this = rhs;
54975     }
54976 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT54977     PhysicalDeviceMemoryBudgetPropertiesEXT& operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54978     {
54979       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>(&rhs);
54980       return *this;
54981     }
54982 
54983 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT54984     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
54985     {
54986       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
54987     }
54988 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT54989     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
54990     {
54991       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
54992     }
54993 
54994 
54995 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54996     auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const& ) const = default;
54997 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT54998     bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54999     {
55000       return ( sType == rhs.sType )
55001           && ( pNext == rhs.pNext )
55002           && ( heapBudget == rhs.heapBudget )
55003           && ( heapUsage == rhs.heapUsage );
55004     }
55005 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT55006     bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55007     {
55008       return !operator==( rhs );
55009     }
55010 #endif
55011 
55012 
55013 
55014   public:
55015     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
55016     void* pNext = {};
55017     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
55018     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
55019 
55020   };
55021   static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" );
55022   static_assert( std::is_standard_layout<PhysicalDeviceMemoryBudgetPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
55023 
55024   template <>
55025   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
55026   {
55027     using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
55028   };
55029 
55030   struct PhysicalDeviceMemoryPriorityFeaturesEXT
55031   {
55032     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
55033 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55034     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {} ) VULKAN_HPP_NOEXCEPT
55035       : memoryPriority( memoryPriority_ )
55036     {}
55037 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55038     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55039     {
55040       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) - offsetof( PhysicalDeviceMemoryPriorityFeaturesEXT, pNext ) );
55041       return *this;
55042     }
55043 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55044     PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55045     {
55046       *this = rhs;
55047     }
55048 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55049     PhysicalDeviceMemoryPriorityFeaturesEXT& operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55050     {
55051       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>(&rhs);
55052       return *this;
55053     }
55054 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55055     PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
55056     {
55057       pNext = pNext_;
55058       return *this;
55059     }
55060 
setMemoryPriorityVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55061     PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
55062     {
55063       memoryPriority = memoryPriority_;
55064       return *this;
55065     }
55066 
55067 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55068     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
55069     {
55070       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
55071     }
55072 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55073     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
55074     {
55075       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
55076     }
55077 
55078 
55079 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55080     auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const& ) const = default;
55081 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55082     bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55083     {
55084       return ( sType == rhs.sType )
55085           && ( pNext == rhs.pNext )
55086           && ( memoryPriority == rhs.memoryPriority );
55087     }
55088 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT55089     bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55090     {
55091       return !operator==( rhs );
55092     }
55093 #endif
55094 
55095 
55096 
55097   public:
55098     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
55099     void* pNext = {};
55100     VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
55101 
55102   };
55103   static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" );
55104   static_assert( std::is_standard_layout<PhysicalDeviceMemoryPriorityFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
55105 
55106   template <>
55107   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
55108   {
55109     using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
55110   };
55111 
55112   struct PhysicalDeviceMemoryProperties
55113   {
55114 
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties55115     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( uint32_t memoryTypeCount_ = {},
55116                                                             std::array<VULKAN_HPP_NAMESPACE::MemoryType,VK_MAX_MEMORY_TYPES> const& memoryTypes_ = {},
55117                                                             uint32_t memoryHeapCount_ = {},
55118                                                             std::array<VULKAN_HPP_NAMESPACE::MemoryHeap,VK_MAX_MEMORY_HEAPS> const& memoryHeaps_ = {} ) VULKAN_HPP_NOEXCEPT
55119       : memoryTypeCount( memoryTypeCount_ )
55120       , memoryTypes( memoryTypes_ )
55121       , memoryHeapCount( memoryHeapCount_ )
55122       , memoryHeaps( memoryHeaps_ )
55123     {}
55124 
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties55125     PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
55126     {
55127       *this = rhs;
55128     }
55129 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties55130     PhysicalDeviceMemoryProperties& operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
55131     {
55132       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>(&rhs);
55133       return *this;
55134     }
55135 
55136 
operator VkPhysicalDeviceMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties55137     operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
55138     {
55139       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
55140     }
55141 
operator VkPhysicalDeviceMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties55142     operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
55143     {
55144       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
55145     }
55146 
55147 
55148 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55149     auto operator<=>( PhysicalDeviceMemoryProperties const& ) const = default;
55150 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties55151     bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
55152     {
55153       return ( memoryTypeCount == rhs.memoryTypeCount )
55154           && ( memoryTypes == rhs.memoryTypes )
55155           && ( memoryHeapCount == rhs.memoryHeapCount )
55156           && ( memoryHeaps == rhs.memoryHeaps );
55157     }
55158 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties55159     bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
55160     {
55161       return !operator==( rhs );
55162     }
55163 #endif
55164 
55165 
55166 
55167   public:
55168     uint32_t memoryTypeCount = {};
55169     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
55170     uint32_t memoryHeapCount = {};
55171     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
55172 
55173   };
55174   static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" );
55175   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties>::value, "struct wrapper is not a standard layout!" );
55176 
55177   struct PhysicalDeviceMemoryProperties2
55178   {
55179     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
55180 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255181     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT
55182       : memoryProperties( memoryProperties_ )
55183     {}
55184 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255185     PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
55186     {
55187       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMemoryProperties2 ) - offsetof( PhysicalDeviceMemoryProperties2, pNext ) );
55188       return *this;
55189     }
55190 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255191     PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
55192     {
55193       *this = rhs;
55194     }
55195 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255196     PhysicalDeviceMemoryProperties2& operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
55197     {
55198       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>(&rhs);
55199       return *this;
55200     }
55201 
55202 
operator VkPhysicalDeviceMemoryProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255203     operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT
55204     {
55205       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
55206     }
55207 
operator VkPhysicalDeviceMemoryProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255208     operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
55209     {
55210       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
55211     }
55212 
55213 
55214 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55215     auto operator<=>( PhysicalDeviceMemoryProperties2 const& ) const = default;
55216 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255217     bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
55218     {
55219       return ( sType == rhs.sType )
55220           && ( pNext == rhs.pNext )
55221           && ( memoryProperties == rhs.memoryProperties );
55222     }
55223 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties255224     bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
55225     {
55226       return !operator==( rhs );
55227     }
55228 #endif
55229 
55230 
55231 
55232   public:
55233     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
55234     void* pNext = {};
55235     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
55236 
55237   };
55238   static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" );
55239   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties2>::value, "struct wrapper is not a standard layout!" );
55240 
55241   template <>
55242   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
55243   {
55244     using Type = PhysicalDeviceMemoryProperties2;
55245   };
55246 
55247   struct PhysicalDeviceMeshShaderFeaturesNV
55248   {
55249     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
55250 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55251     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {},
55252                                                              VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {} ) VULKAN_HPP_NOEXCEPT
55253       : taskShader( taskShader_ )
55254       , meshShader( meshShader_ )
55255     {}
55256 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55257     PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55258     {
55259       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMeshShaderFeaturesNV ) - offsetof( PhysicalDeviceMeshShaderFeaturesNV, pNext ) );
55260       return *this;
55261     }
55262 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55263     PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55264     {
55265       *this = rhs;
55266     }
55267 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55268     PhysicalDeviceMeshShaderFeaturesNV& operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55269     {
55270       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>(&rhs);
55271       return *this;
55272     }
55273 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55274     PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
55275     {
55276       pNext = pNext_;
55277       return *this;
55278     }
55279 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55280     PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
55281     {
55282       taskShader = taskShader_;
55283       return *this;
55284     }
55285 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55286     PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
55287     {
55288       meshShader = meshShader_;
55289       return *this;
55290     }
55291 
55292 
operator VkPhysicalDeviceMeshShaderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55293     operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
55294     {
55295       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
55296     }
55297 
operator VkPhysicalDeviceMeshShaderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55298     operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
55299     {
55300       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
55301     }
55302 
55303 
55304 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55305     auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const& ) const = default;
55306 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55307     bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
55308     {
55309       return ( sType == rhs.sType )
55310           && ( pNext == rhs.pNext )
55311           && ( taskShader == rhs.taskShader )
55312           && ( meshShader == rhs.meshShader );
55313     }
55314 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV55315     bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
55316     {
55317       return !operator==( rhs );
55318     }
55319 #endif
55320 
55321 
55322 
55323   public:
55324     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
55325     void* pNext = {};
55326     VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
55327     VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
55328 
55329   };
55330   static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" );
55331   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderFeaturesNV>::value, "struct wrapper is not a standard layout!" );
55332 
55333   template <>
55334   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
55335   {
55336     using Type = PhysicalDeviceMeshShaderFeaturesNV;
55337   };
55338 
55339   struct PhysicalDeviceMeshShaderPropertiesNV
55340   {
55341     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
55342 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55343     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( uint32_t maxDrawMeshTasksCount_ = {},
55344                                                                   uint32_t maxTaskWorkGroupInvocations_ = {},
55345                                                                   std::array<uint32_t,3> const& maxTaskWorkGroupSize_ = {},
55346                                                                   uint32_t maxTaskTotalMemorySize_ = {},
55347                                                                   uint32_t maxTaskOutputCount_ = {},
55348                                                                   uint32_t maxMeshWorkGroupInvocations_ = {},
55349                                                                   std::array<uint32_t,3> const& maxMeshWorkGroupSize_ = {},
55350                                                                   uint32_t maxMeshTotalMemorySize_ = {},
55351                                                                   uint32_t maxMeshOutputVertices_ = {},
55352                                                                   uint32_t maxMeshOutputPrimitives_ = {},
55353                                                                   uint32_t maxMeshMultiviewViewCount_ = {},
55354                                                                   uint32_t meshOutputPerVertexGranularity_ = {},
55355                                                                   uint32_t meshOutputPerPrimitiveGranularity_ = {} ) VULKAN_HPP_NOEXCEPT
55356       : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ )
55357       , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
55358       , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ )
55359       , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ )
55360       , maxTaskOutputCount( maxTaskOutputCount_ )
55361       , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
55362       , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ )
55363       , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ )
55364       , maxMeshOutputVertices( maxMeshOutputVertices_ )
55365       , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
55366       , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
55367       , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
55368       , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
55369     {}
55370 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55371     PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55372     {
55373       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMeshShaderPropertiesNV ) - offsetof( PhysicalDeviceMeshShaderPropertiesNV, pNext ) );
55374       return *this;
55375     }
55376 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55377     PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55378     {
55379       *this = rhs;
55380     }
55381 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55382     PhysicalDeviceMeshShaderPropertiesNV& operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55383     {
55384       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>(&rhs);
55385       return *this;
55386     }
55387 
55388 
operator VkPhysicalDeviceMeshShaderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55389     operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
55390     {
55391       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
55392     }
55393 
operator VkPhysicalDeviceMeshShaderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55394     operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
55395     {
55396       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
55397     }
55398 
55399 
55400 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55401     auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const& ) const = default;
55402 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55403     bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
55404     {
55405       return ( sType == rhs.sType )
55406           && ( pNext == rhs.pNext )
55407           && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
55408           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
55409           && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize )
55410           && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
55411           && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
55412           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
55413           && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize )
55414           && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
55415           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
55416           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
55417           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
55418           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
55419           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
55420     }
55421 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV55422     bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
55423     {
55424       return !operator==( rhs );
55425     }
55426 #endif
55427 
55428 
55429 
55430   public:
55431     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
55432     void* pNext = {};
55433     uint32_t maxDrawMeshTasksCount = {};
55434     uint32_t maxTaskWorkGroupInvocations = {};
55435     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
55436     uint32_t maxTaskTotalMemorySize = {};
55437     uint32_t maxTaskOutputCount = {};
55438     uint32_t maxMeshWorkGroupInvocations = {};
55439     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
55440     uint32_t maxMeshTotalMemorySize = {};
55441     uint32_t maxMeshOutputVertices = {};
55442     uint32_t maxMeshOutputPrimitives = {};
55443     uint32_t maxMeshMultiviewViewCount = {};
55444     uint32_t meshOutputPerVertexGranularity = {};
55445     uint32_t meshOutputPerPrimitiveGranularity = {};
55446 
55447   };
55448   static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" );
55449   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderPropertiesNV>::value, "struct wrapper is not a standard layout!" );
55450 
55451   template <>
55452   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
55453   {
55454     using Type = PhysicalDeviceMeshShaderPropertiesNV;
55455   };
55456 
55457   struct PhysicalDeviceMultiviewFeatures
55458   {
55459     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
55460 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55461     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {},
55462                                                           VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {},
55463                                                           VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {} ) VULKAN_HPP_NOEXCEPT
55464       : multiview( multiview_ )
55465       , multiviewGeometryShader( multiviewGeometryShader_ )
55466       , multiviewTessellationShader( multiviewTessellationShader_ )
55467     {}
55468 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55469     PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
55470     {
55471       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMultiviewFeatures ) - offsetof( PhysicalDeviceMultiviewFeatures, pNext ) );
55472       return *this;
55473     }
55474 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55475     PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
55476     {
55477       *this = rhs;
55478     }
55479 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55480     PhysicalDeviceMultiviewFeatures& operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
55481     {
55482       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>(&rhs);
55483       return *this;
55484     }
55485 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55486     PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
55487     {
55488       pNext = pNext_;
55489       return *this;
55490     }
55491 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55492     PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
55493     {
55494       multiview = multiview_;
55495       return *this;
55496     }
55497 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55498     PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
55499     {
55500       multiviewGeometryShader = multiviewGeometryShader_;
55501       return *this;
55502     }
55503 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55504     PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
55505     {
55506       multiviewTessellationShader = multiviewTessellationShader_;
55507       return *this;
55508     }
55509 
55510 
operator VkPhysicalDeviceMultiviewFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55511     operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT
55512     {
55513       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
55514     }
55515 
operator VkPhysicalDeviceMultiviewFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55516     operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
55517     {
55518       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
55519     }
55520 
55521 
55522 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55523     auto operator<=>( PhysicalDeviceMultiviewFeatures const& ) const = default;
55524 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55525     bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
55526     {
55527       return ( sType == rhs.sType )
55528           && ( pNext == rhs.pNext )
55529           && ( multiview == rhs.multiview )
55530           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
55531           && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
55532     }
55533 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures55534     bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
55535     {
55536       return !operator==( rhs );
55537     }
55538 #endif
55539 
55540 
55541 
55542   public:
55543     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
55544     void* pNext = {};
55545     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
55546     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
55547     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
55548 
55549   };
55550   static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" );
55551   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewFeatures>::value, "struct wrapper is not a standard layout!" );
55552 
55553   template <>
55554   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
55555   {
55556     using Type = PhysicalDeviceMultiviewFeatures;
55557   };
55558 
55559   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
55560   {
55561     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
55562 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55563     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {} ) VULKAN_HPP_NOEXCEPT
55564       : perViewPositionAllComponents( perViewPositionAllComponents_ )
55565     {}
55566 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55567     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
55568     {
55569       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) - offsetof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext ) );
55570       return *this;
55571     }
55572 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55573     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
55574     {
55575       *this = rhs;
55576     }
55577 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55578     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
55579     {
55580       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>(&rhs);
55581       return *this;
55582     }
55583 
55584 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55585     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
55586     {
55587       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
55588     }
55589 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55590     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
55591     {
55592       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
55593     }
55594 
55595 
55596 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55597     auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& ) const = default;
55598 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55599     bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
55600     {
55601       return ( sType == rhs.sType )
55602           && ( pNext == rhs.pNext )
55603           && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
55604     }
55605 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX55606     bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
55607     {
55608       return !operator==( rhs );
55609     }
55610 #endif
55611 
55612 
55613 
55614   public:
55615     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
55616     void* pNext = {};
55617     VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
55618 
55619   };
55620   static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" );
55621   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
55622 
55623   template <>
55624   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
55625   {
55626     using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
55627   };
55628 
55629   struct PhysicalDeviceMultiviewProperties
55630   {
55631     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
55632 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55633     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( uint32_t maxMultiviewViewCount_ = {},
55634                                                             uint32_t maxMultiviewInstanceIndex_ = {} ) VULKAN_HPP_NOEXCEPT
55635       : maxMultiviewViewCount( maxMultiviewViewCount_ )
55636       , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
55637     {}
55638 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55639     PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
55640     {
55641       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceMultiviewProperties ) - offsetof( PhysicalDeviceMultiviewProperties, pNext ) );
55642       return *this;
55643     }
55644 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55645     PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
55646     {
55647       *this = rhs;
55648     }
55649 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55650     PhysicalDeviceMultiviewProperties& operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
55651     {
55652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>(&rhs);
55653       return *this;
55654     }
55655 
55656 
operator VkPhysicalDeviceMultiviewProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55657     operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT
55658     {
55659       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
55660     }
55661 
operator VkPhysicalDeviceMultiviewProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55662     operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
55663     {
55664       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
55665     }
55666 
55667 
55668 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55669     auto operator<=>( PhysicalDeviceMultiviewProperties const& ) const = default;
55670 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55671     bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
55672     {
55673       return ( sType == rhs.sType )
55674           && ( pNext == rhs.pNext )
55675           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
55676           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
55677     }
55678 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties55679     bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
55680     {
55681       return !operator==( rhs );
55682     }
55683 #endif
55684 
55685 
55686 
55687   public:
55688     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
55689     void* pNext = {};
55690     uint32_t maxMultiviewViewCount = {};
55691     uint32_t maxMultiviewInstanceIndex = {};
55692 
55693   };
55694   static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" );
55695   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewProperties>::value, "struct wrapper is not a standard layout!" );
55696 
55697   template <>
55698   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
55699   {
55700     using Type = PhysicalDeviceMultiviewProperties;
55701   };
55702 
55703   struct PhysicalDevicePCIBusInfoPropertiesEXT
55704   {
55705     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
55706 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55707     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( uint32_t pciDomain_ = {},
55708                                                                 uint32_t pciBus_ = {},
55709                                                                 uint32_t pciDevice_ = {},
55710                                                                 uint32_t pciFunction_ = {} ) VULKAN_HPP_NOEXCEPT
55711       : pciDomain( pciDomain_ )
55712       , pciBus( pciBus_ )
55713       , pciDevice( pciDevice_ )
55714       , pciFunction( pciFunction_ )
55715     {}
55716 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55717     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55718     {
55719       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) - offsetof( PhysicalDevicePCIBusInfoPropertiesEXT, pNext ) );
55720       return *this;
55721     }
55722 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55723     PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55724     {
55725       *this = rhs;
55726     }
55727 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55728     PhysicalDevicePCIBusInfoPropertiesEXT& operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55729     {
55730       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>(&rhs);
55731       return *this;
55732     }
55733 
55734 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55735     operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
55736     {
55737       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
55738     }
55739 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55740     operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
55741     {
55742       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
55743     }
55744 
55745 
55746 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55747     auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const& ) const = default;
55748 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55749     bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55750     {
55751       return ( sType == rhs.sType )
55752           && ( pNext == rhs.pNext )
55753           && ( pciDomain == rhs.pciDomain )
55754           && ( pciBus == rhs.pciBus )
55755           && ( pciDevice == rhs.pciDevice )
55756           && ( pciFunction == rhs.pciFunction );
55757     }
55758 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT55759     bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55760     {
55761       return !operator==( rhs );
55762     }
55763 #endif
55764 
55765 
55766 
55767   public:
55768     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
55769     void* pNext = {};
55770     uint32_t pciDomain = {};
55771     uint32_t pciBus = {};
55772     uint32_t pciDevice = {};
55773     uint32_t pciFunction = {};
55774 
55775   };
55776   static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" );
55777   static_assert( std::is_standard_layout<PhysicalDevicePCIBusInfoPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
55778 
55779   template <>
55780   struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
55781   {
55782     using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
55783   };
55784 
55785   struct PhysicalDevicePerformanceQueryFeaturesKHR
55786   {
55787     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
55788 
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55789     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {},
55790                                                                     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {} ) VULKAN_HPP_NOEXCEPT
55791       : performanceCounterQueryPools( performanceCounterQueryPools_ )
55792       , performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
55793     {}
55794 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55795     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55796     {
55797       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) - offsetof( PhysicalDevicePerformanceQueryFeaturesKHR, pNext ) );
55798       return *this;
55799     }
55800 
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55801     PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55802     {
55803       *this = rhs;
55804     }
55805 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55806     PhysicalDevicePerformanceQueryFeaturesKHR& operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55807     {
55808       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>(&rhs);
55809       return *this;
55810     }
55811 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55812     PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
55813     {
55814       pNext = pNext_;
55815       return *this;
55816     }
55817 
setPerformanceCounterQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55818     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
55819     {
55820       performanceCounterQueryPools = performanceCounterQueryPools_;
55821       return *this;
55822     }
55823 
setPerformanceCounterMultipleQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55824     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
55825     {
55826       performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
55827       return *this;
55828     }
55829 
55830 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55831     operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
55832     {
55833       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
55834     }
55835 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55836     operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
55837     {
55838       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
55839     }
55840 
55841 
55842 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55843     auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const& ) const = default;
55844 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55845     bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55846     {
55847       return ( sType == rhs.sType )
55848           && ( pNext == rhs.pNext )
55849           && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools )
55850           && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
55851     }
55852 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR55853     bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55854     {
55855       return !operator==( rhs );
55856     }
55857 #endif
55858 
55859 
55860 
55861   public:
55862     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
55863     void* pNext = {};
55864     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
55865     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
55866 
55867   };
55868   static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" );
55869   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
55870 
55871   template <>
55872   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
55873   {
55874     using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
55875   };
55876 
55877   struct PhysicalDevicePerformanceQueryPropertiesKHR
55878   {
55879     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
55880 
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55881     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {} ) VULKAN_HPP_NOEXCEPT
55882       : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
55883     {}
55884 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55885     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55886     {
55887       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) - offsetof( PhysicalDevicePerformanceQueryPropertiesKHR, pNext ) );
55888       return *this;
55889     }
55890 
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55891     PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55892     {
55893       *this = rhs;
55894     }
55895 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55896     PhysicalDevicePerformanceQueryPropertiesKHR& operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55897     {
55898       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>(&rhs);
55899       return *this;
55900     }
55901 
55902 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55903     operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
55904     {
55905       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
55906     }
55907 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55908     operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
55909     {
55910       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
55911     }
55912 
55913 
55914 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55915     auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const& ) const = default;
55916 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55917     bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55918     {
55919       return ( sType == rhs.sType )
55920           && ( pNext == rhs.pNext )
55921           && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
55922     }
55923 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR55924     bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55925     {
55926       return !operator==( rhs );
55927     }
55928 #endif
55929 
55930 
55931 
55932   public:
55933     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
55934     void* pNext = {};
55935     VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
55936 
55937   };
55938   static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" );
55939   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
55940 
55941   template <>
55942   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
55943   {
55944     using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
55945   };
55946 
55947   struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT
55948   {
55949     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
55950 
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55951     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {} ) VULKAN_HPP_NOEXCEPT
55952       : pipelineCreationCacheControl( pipelineCreationCacheControl_ )
55953     {}
55954 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55955     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55956     {
55957       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) - offsetof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT, pNext ) );
55958       return *this;
55959     }
55960 
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55961     PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55962     {
55963       *this = rhs;
55964     }
55965 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55966     PhysicalDevicePipelineCreationCacheControlFeaturesEXT& operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55967     {
55968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT const *>(&rhs);
55969       return *this;
55970     }
55971 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55972     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
55973     {
55974       pNext = pNext_;
55975       return *this;
55976     }
55977 
setPipelineCreationCacheControlVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55978     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
55979     {
55980       pipelineCreationCacheControl = pipelineCreationCacheControl_;
55981       return *this;
55982     }
55983 
55984 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55985     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
55986     {
55987       return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
55988     }
55989 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55990     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
55991     {
55992       return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
55993     }
55994 
55995 
55996 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55997     auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& ) const = default;
55998 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT55999     bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56000     {
56001       return ( sType == rhs.sType )
56002           && ( pNext == rhs.pNext )
56003           && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
56004     }
56005 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT56006     bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56007     {
56008       return !operator==( rhs );
56009     }
56010 #endif
56011 
56012 
56013 
56014   public:
56015     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
56016     void* pNext = {};
56017     VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
56018 
56019   };
56020   static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), "struct and wrapper have different size!" );
56021   static_assert( std::is_standard_layout<PhysicalDevicePipelineCreationCacheControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
56022 
56023   template <>
56024   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT>
56025   {
56026     using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
56027   };
56028 
56029   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
56030   {
56031     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
56032 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56033     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {} ) VULKAN_HPP_NOEXCEPT
56034       : pipelineExecutableInfo( pipelineExecutableInfo_ )
56035     {}
56036 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56037     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56038     {
56039       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) - offsetof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, pNext ) );
56040       return *this;
56041     }
56042 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56043     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56044     {
56045       *this = rhs;
56046     }
56047 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56048     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR& operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56049     {
56050       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>(&rhs);
56051       return *this;
56052     }
56053 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56054     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
56055     {
56056       pNext = pNext_;
56057       return *this;
56058     }
56059 
setPipelineExecutableInfoVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56060     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
56061     {
56062       pipelineExecutableInfo = pipelineExecutableInfo_;
56063       return *this;
56064     }
56065 
56066 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56067     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
56068     {
56069       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
56070     }
56071 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56072     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
56073     {
56074       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
56075     }
56076 
56077 
56078 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56079     auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& ) const = default;
56080 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56081     bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56082     {
56083       return ( sType == rhs.sType )
56084           && ( pNext == rhs.pNext )
56085           && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
56086     }
56087 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR56088     bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56089     {
56090       return !operator==( rhs );
56091     }
56092 #endif
56093 
56094 
56095 
56096   public:
56097     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
56098     void* pNext = {};
56099     VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
56100 
56101   };
56102   static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" );
56103   static_assert( std::is_standard_layout<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
56104 
56105   template <>
56106   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
56107   {
56108     using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
56109   };
56110 
56111   struct PhysicalDevicePointClippingProperties
56112   {
56113     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
56114 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56115     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes ) VULKAN_HPP_NOEXCEPT
56116       : pointClippingBehavior( pointClippingBehavior_ )
56117     {}
56118 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56119     PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56120     {
56121       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePointClippingProperties ) - offsetof( PhysicalDevicePointClippingProperties, pNext ) );
56122       return *this;
56123     }
56124 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56125     PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56126     {
56127       *this = rhs;
56128     }
56129 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56130     PhysicalDevicePointClippingProperties& operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56131     {
56132       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>(&rhs);
56133       return *this;
56134     }
56135 
56136 
operator VkPhysicalDevicePointClippingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56137     operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT
56138     {
56139       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
56140     }
56141 
operator VkPhysicalDevicePointClippingProperties&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56142     operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
56143     {
56144       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
56145     }
56146 
56147 
56148 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56149     auto operator<=>( PhysicalDevicePointClippingProperties const& ) const = default;
56150 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56151     bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56152     {
56153       return ( sType == rhs.sType )
56154           && ( pNext == rhs.pNext )
56155           && ( pointClippingBehavior == rhs.pointClippingBehavior );
56156     }
56157 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties56158     bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56159     {
56160       return !operator==( rhs );
56161     }
56162 #endif
56163 
56164 
56165 
56166   public:
56167     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
56168     void* pNext = {};
56169     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
56170 
56171   };
56172   static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" );
56173   static_assert( std::is_standard_layout<PhysicalDevicePointClippingProperties>::value, "struct wrapper is not a standard layout!" );
56174 
56175   template <>
56176   struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
56177   {
56178     using Type = PhysicalDevicePointClippingProperties;
56179   };
56180 
56181   struct PhysicalDevicePrivateDataFeaturesEXT
56182   {
56183     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
56184 
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56185     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {} ) VULKAN_HPP_NOEXCEPT
56186       : privateData( privateData_ )
56187     {}
56188 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56189     PhysicalDevicePrivateDataFeaturesEXT & operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56190     {
56191       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePrivateDataFeaturesEXT ) - offsetof( PhysicalDevicePrivateDataFeaturesEXT, pNext ) );
56192       return *this;
56193     }
56194 
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56195     PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56196     {
56197       *this = rhs;
56198     }
56199 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56200     PhysicalDevicePrivateDataFeaturesEXT& operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56201     {
56202       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT const *>(&rhs);
56203       return *this;
56204     }
56205 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56206     PhysicalDevicePrivateDataFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
56207     {
56208       pNext = pNext_;
56209       return *this;
56210     }
56211 
setPrivateDataVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56212     PhysicalDevicePrivateDataFeaturesEXT & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
56213     {
56214       privateData = privateData_;
56215       return *this;
56216     }
56217 
56218 
operator VkPhysicalDevicePrivateDataFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56219     operator VkPhysicalDevicePrivateDataFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
56220     {
56221       return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
56222     }
56223 
operator VkPhysicalDevicePrivateDataFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56224     operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT
56225     {
56226       return *reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
56227     }
56228 
56229 
56230 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56231     auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const& ) const = default;
56232 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56233     bool operator==( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56234     {
56235       return ( sType == rhs.sType )
56236           && ( pNext == rhs.pNext )
56237           && ( privateData == rhs.privateData );
56238     }
56239 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT56240     bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56241     {
56242       return !operator==( rhs );
56243     }
56244 #endif
56245 
56246 
56247 
56248   public:
56249     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
56250     void* pNext = {};
56251     VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
56252 
56253   };
56254   static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), "struct and wrapper have different size!" );
56255   static_assert( std::is_standard_layout<PhysicalDevicePrivateDataFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
56256 
56257   template <>
56258   struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeaturesEXT>
56259   {
56260     using Type = PhysicalDevicePrivateDataFeaturesEXT;
56261   };
56262 
56263   struct PhysicalDeviceSparseProperties
56264   {
56265 
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties56266     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {},
56267                                                          VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {},
56268                                                          VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {},
56269                                                          VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {},
56270                                                          VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {} ) VULKAN_HPP_NOEXCEPT
56271       : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ )
56272       , residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ )
56273       , residencyStandard3DBlockShape( residencyStandard3DBlockShape_ )
56274       , residencyAlignedMipSize( residencyAlignedMipSize_ )
56275       , residencyNonResidentStrict( residencyNonResidentStrict_ )
56276     {}
56277 
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties56278     PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56279     {
56280       *this = rhs;
56281     }
56282 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties56283     PhysicalDeviceSparseProperties& operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56284     {
56285       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>(&rhs);
56286       return *this;
56287     }
56288 
56289 
operator VkPhysicalDeviceSparseProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties56290     operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT
56291     {
56292       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
56293     }
56294 
operator VkPhysicalDeviceSparseProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties56295     operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
56296     {
56297       return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
56298     }
56299 
56300 
56301 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56302     auto operator<=>( PhysicalDeviceSparseProperties const& ) const = default;
56303 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties56304     bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56305     {
56306       return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
56307           && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
56308           && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
56309           && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
56310           && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
56311     }
56312 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties56313     bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56314     {
56315       return !operator==( rhs );
56316     }
56317 #endif
56318 
56319 
56320 
56321   public:
56322     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
56323     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
56324     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
56325     VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
56326     VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
56327 
56328   };
56329   static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" );
56330   static_assert( std::is_standard_layout<PhysicalDeviceSparseProperties>::value, "struct wrapper is not a standard layout!" );
56331 
56332   struct PhysicalDeviceProperties
56333   {
56334 
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties56335     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( uint32_t apiVersion_ = {},
56336                                                       uint32_t driverVersion_ = {},
56337                                                       uint32_t vendorID_ = {},
56338                                                       uint32_t deviceID_ = {},
56339                                                       VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther,
56340                                                       std::array<char,VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const& deviceName_ = {},
56341                                                       std::array<uint8_t,VK_UUID_SIZE> const& pipelineCacheUUID_ = {},
56342                                                       VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {},
56343                                                       VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {} ) VULKAN_HPP_NOEXCEPT
56344       : apiVersion( apiVersion_ )
56345       , driverVersion( driverVersion_ )
56346       , vendorID( vendorID_ )
56347       , deviceID( deviceID_ )
56348       , deviceType( deviceType_ )
56349       , deviceName( deviceName_ )
56350       , pipelineCacheUUID( pipelineCacheUUID_ )
56351       , limits( limits_ )
56352       , sparseProperties( sparseProperties_ )
56353     {}
56354 
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties56355     PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56356     {
56357       *this = rhs;
56358     }
56359 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties56360     PhysicalDeviceProperties& operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56361     {
56362       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>(&rhs);
56363       return *this;
56364     }
56365 
56366 
operator VkPhysicalDeviceProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties56367     operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT
56368     {
56369       return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
56370     }
56371 
operator VkPhysicalDeviceProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties56372     operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
56373     {
56374       return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
56375     }
56376 
56377 
56378 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56379     auto operator<=>( PhysicalDeviceProperties const& ) const = default;
56380 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties56381     bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56382     {
56383       return ( apiVersion == rhs.apiVersion )
56384           && ( driverVersion == rhs.driverVersion )
56385           && ( vendorID == rhs.vendorID )
56386           && ( deviceID == rhs.deviceID )
56387           && ( deviceType == rhs.deviceType )
56388           && ( deviceName == rhs.deviceName )
56389           && ( pipelineCacheUUID == rhs.pipelineCacheUUID )
56390           && ( limits == rhs.limits )
56391           && ( sparseProperties == rhs.sparseProperties );
56392     }
56393 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties56394     bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56395     {
56396       return !operator==( rhs );
56397     }
56398 #endif
56399 
56400 
56401 
56402   public:
56403     uint32_t apiVersion = {};
56404     uint32_t driverVersion = {};
56405     uint32_t vendorID = {};
56406     uint32_t deviceID = {};
56407     VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
56408     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
56409     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
56410     VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
56411     VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
56412 
56413   };
56414   static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" );
56415   static_assert( std::is_standard_layout<PhysicalDeviceProperties>::value, "struct wrapper is not a standard layout!" );
56416 
56417   struct PhysicalDeviceProperties2
56418   {
56419     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
56420 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256421     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {} ) VULKAN_HPP_NOEXCEPT
56422       : properties( properties_ )
56423     {}
56424 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256425     PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
56426     {
56427       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceProperties2 ) - offsetof( PhysicalDeviceProperties2, pNext ) );
56428       return *this;
56429     }
56430 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256431     PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
56432     {
56433       *this = rhs;
56434     }
56435 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256436     PhysicalDeviceProperties2& operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
56437     {
56438       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>(&rhs);
56439       return *this;
56440     }
56441 
56442 
operator VkPhysicalDeviceProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256443     operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT
56444     {
56445       return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
56446     }
56447 
operator VkPhysicalDeviceProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256448     operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
56449     {
56450       return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
56451     }
56452 
56453 
56454 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56455     auto operator<=>( PhysicalDeviceProperties2 const& ) const = default;
56456 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256457     bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
56458     {
56459       return ( sType == rhs.sType )
56460           && ( pNext == rhs.pNext )
56461           && ( properties == rhs.properties );
56462     }
56463 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties256464     bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
56465     {
56466       return !operator==( rhs );
56467     }
56468 #endif
56469 
56470 
56471 
56472   public:
56473     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
56474     void* pNext = {};
56475     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
56476 
56477   };
56478   static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" );
56479   static_assert( std::is_standard_layout<PhysicalDeviceProperties2>::value, "struct wrapper is not a standard layout!" );
56480 
56481   template <>
56482   struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
56483   {
56484     using Type = PhysicalDeviceProperties2;
56485   };
56486 
56487   struct PhysicalDeviceProtectedMemoryFeatures
56488   {
56489     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
56490 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56491     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {} ) VULKAN_HPP_NOEXCEPT
56492       : protectedMemory( protectedMemory_ )
56493     {}
56494 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56495     PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
56496     {
56497       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceProtectedMemoryFeatures ) - offsetof( PhysicalDeviceProtectedMemoryFeatures, pNext ) );
56498       return *this;
56499     }
56500 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56501     PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
56502     {
56503       *this = rhs;
56504     }
56505 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56506     PhysicalDeviceProtectedMemoryFeatures& operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
56507     {
56508       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>(&rhs);
56509       return *this;
56510     }
56511 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56512     PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
56513     {
56514       pNext = pNext_;
56515       return *this;
56516     }
56517 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56518     PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
56519     {
56520       protectedMemory = protectedMemory_;
56521       return *this;
56522     }
56523 
56524 
operator VkPhysicalDeviceProtectedMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56525     operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT
56526     {
56527       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
56528     }
56529 
operator VkPhysicalDeviceProtectedMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56530     operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
56531     {
56532       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
56533     }
56534 
56535 
56536 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56537     auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const& ) const = default;
56538 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56539     bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
56540     {
56541       return ( sType == rhs.sType )
56542           && ( pNext == rhs.pNext )
56543           && ( protectedMemory == rhs.protectedMemory );
56544     }
56545 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures56546     bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
56547     {
56548       return !operator==( rhs );
56549     }
56550 #endif
56551 
56552 
56553 
56554   public:
56555     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
56556     void* pNext = {};
56557     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
56558 
56559   };
56560   static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" );
56561   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryFeatures>::value, "struct wrapper is not a standard layout!" );
56562 
56563   template <>
56564   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
56565   {
56566     using Type = PhysicalDeviceProtectedMemoryFeatures;
56567   };
56568 
56569   struct PhysicalDeviceProtectedMemoryProperties
56570   {
56571     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
56572 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56573     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {} ) VULKAN_HPP_NOEXCEPT
56574       : protectedNoFault( protectedNoFault_ )
56575     {}
56576 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56577     PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56578     {
56579       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceProtectedMemoryProperties ) - offsetof( PhysicalDeviceProtectedMemoryProperties, pNext ) );
56580       return *this;
56581     }
56582 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56583     PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56584     {
56585       *this = rhs;
56586     }
56587 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56588     PhysicalDeviceProtectedMemoryProperties& operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56589     {
56590       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>(&rhs);
56591       return *this;
56592     }
56593 
56594 
operator VkPhysicalDeviceProtectedMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56595     operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
56596     {
56597       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
56598     }
56599 
operator VkPhysicalDeviceProtectedMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56600     operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
56601     {
56602       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
56603     }
56604 
56605 
56606 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56607     auto operator<=>( PhysicalDeviceProtectedMemoryProperties const& ) const = default;
56608 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56609     bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56610     {
56611       return ( sType == rhs.sType )
56612           && ( pNext == rhs.pNext )
56613           && ( protectedNoFault == rhs.protectedNoFault );
56614     }
56615 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties56616     bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
56617     {
56618       return !operator==( rhs );
56619     }
56620 #endif
56621 
56622 
56623 
56624   public:
56625     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
56626     void* pNext = {};
56627     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
56628 
56629   };
56630   static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" );
56631   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryProperties>::value, "struct wrapper is not a standard layout!" );
56632 
56633   template <>
56634   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
56635   {
56636     using Type = PhysicalDeviceProtectedMemoryProperties;
56637   };
56638 
56639   struct PhysicalDevicePushDescriptorPropertiesKHR
56640   {
56641     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
56642 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56643     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( uint32_t maxPushDescriptors_ = {} ) VULKAN_HPP_NOEXCEPT
56644       : maxPushDescriptors( maxPushDescriptors_ )
56645     {}
56646 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56647     PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56648     {
56649       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) - offsetof( PhysicalDevicePushDescriptorPropertiesKHR, pNext ) );
56650       return *this;
56651     }
56652 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56653     PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56654     {
56655       *this = rhs;
56656     }
56657 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56658     PhysicalDevicePushDescriptorPropertiesKHR& operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56659     {
56660       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>(&rhs);
56661       return *this;
56662     }
56663 
56664 
operator VkPhysicalDevicePushDescriptorPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56665     operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
56666     {
56667       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
56668     }
56669 
operator VkPhysicalDevicePushDescriptorPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56670     operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
56671     {
56672       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
56673     }
56674 
56675 
56676 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56677     auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const& ) const = default;
56678 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56679     bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56680     {
56681       return ( sType == rhs.sType )
56682           && ( pNext == rhs.pNext )
56683           && ( maxPushDescriptors == rhs.maxPushDescriptors );
56684     }
56685 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR56686     bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56687     {
56688       return !operator==( rhs );
56689     }
56690 #endif
56691 
56692 
56693 
56694   public:
56695     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
56696     void* pNext = {};
56697     uint32_t maxPushDescriptors = {};
56698 
56699   };
56700   static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
56701   static_assert( std::is_standard_layout<PhysicalDevicePushDescriptorPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
56702 
56703   template <>
56704   struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
56705   {
56706     using Type = PhysicalDevicePushDescriptorPropertiesKHR;
56707   };
56708 
56709 #ifdef VK_ENABLE_BETA_EXTENSIONS
56710   struct PhysicalDeviceRayTracingFeaturesKHR
56711   {
56712     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
56713 
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56714     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracing_ = {},
56715                                                               VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay_ = {},
56716                                                               VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed_ = {},
56717                                                               VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay_ = {},
56718                                                               VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays_ = {},
56719                                                               VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild_ = {},
56720                                                               VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands_ = {},
56721                                                               VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {},
56722                                                               VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling_ = {} ) VULKAN_HPP_NOEXCEPT
56723       : rayTracing( rayTracing_ )
56724       , rayTracingShaderGroupHandleCaptureReplay( rayTracingShaderGroupHandleCaptureReplay_ )
56725       , rayTracingShaderGroupHandleCaptureReplayMixed( rayTracingShaderGroupHandleCaptureReplayMixed_ )
56726       , rayTracingAccelerationStructureCaptureReplay( rayTracingAccelerationStructureCaptureReplay_ )
56727       , rayTracingIndirectTraceRays( rayTracingIndirectTraceRays_ )
56728       , rayTracingIndirectAccelerationStructureBuild( rayTracingIndirectAccelerationStructureBuild_ )
56729       , rayTracingHostAccelerationStructureCommands( rayTracingHostAccelerationStructureCommands_ )
56730       , rayQuery( rayQuery_ )
56731       , rayTracingPrimitiveCulling( rayTracingPrimitiveCulling_ )
56732     {}
56733 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56734     PhysicalDeviceRayTracingFeaturesKHR & operator=( PhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56735     {
56736       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceRayTracingFeaturesKHR ) - offsetof( PhysicalDeviceRayTracingFeaturesKHR, pNext ) );
56737       return *this;
56738     }
56739 
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56740     PhysicalDeviceRayTracingFeaturesKHR( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56741     {
56742       *this = rhs;
56743     }
56744 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56745     PhysicalDeviceRayTracingFeaturesKHR& operator=( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56746     {
56747       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR const *>(&rhs);
56748       return *this;
56749     }
56750 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56751     PhysicalDeviceRayTracingFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
56752     {
56753       pNext = pNext_;
56754       return *this;
56755     }
56756 
setRayTracingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56757     PhysicalDeviceRayTracingFeaturesKHR & setRayTracing( VULKAN_HPP_NAMESPACE::Bool32 rayTracing_ ) VULKAN_HPP_NOEXCEPT
56758     {
56759       rayTracing = rayTracing_;
56760       return *this;
56761     }
56762 
setRayTracingShaderGroupHandleCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56763     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
56764     {
56765       rayTracingShaderGroupHandleCaptureReplay = rayTracingShaderGroupHandleCaptureReplay_;
56766       return *this;
56767     }
56768 
setRayTracingShaderGroupHandleCaptureReplayMixedVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56769     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
56770     {
56771       rayTracingShaderGroupHandleCaptureReplayMixed = rayTracingShaderGroupHandleCaptureReplayMixed_;
56772       return *this;
56773     }
56774 
setRayTracingAccelerationStructureCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56775     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
56776     {
56777       rayTracingAccelerationStructureCaptureReplay = rayTracingAccelerationStructureCaptureReplay_;
56778       return *this;
56779     }
56780 
setRayTracingIndirectTraceRaysVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56781     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectTraceRays( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays_ ) VULKAN_HPP_NOEXCEPT
56782     {
56783       rayTracingIndirectTraceRays = rayTracingIndirectTraceRays_;
56784       return *this;
56785     }
56786 
setRayTracingIndirectAccelerationStructureBuildVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56787     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectAccelerationStructureBuild( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild_ ) VULKAN_HPP_NOEXCEPT
56788     {
56789       rayTracingIndirectAccelerationStructureBuild = rayTracingIndirectAccelerationStructureBuild_;
56790       return *this;
56791     }
56792 
setRayTracingHostAccelerationStructureCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56793     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingHostAccelerationStructureCommands( VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands_ ) VULKAN_HPP_NOEXCEPT
56794     {
56795       rayTracingHostAccelerationStructureCommands = rayTracingHostAccelerationStructureCommands_;
56796       return *this;
56797     }
56798 
setRayQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56799     PhysicalDeviceRayTracingFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
56800     {
56801       rayQuery = rayQuery_;
56802       return *this;
56803     }
56804 
setRayTracingPrimitiveCullingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56805     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
56806     {
56807       rayTracingPrimitiveCulling = rayTracingPrimitiveCulling_;
56808       return *this;
56809     }
56810 
56811 
operator VkPhysicalDeviceRayTracingFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56812     operator VkPhysicalDeviceRayTracingFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
56813     {
56814       return *reinterpret_cast<const VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
56815     }
56816 
operator VkPhysicalDeviceRayTracingFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56817     operator VkPhysicalDeviceRayTracingFeaturesKHR &() VULKAN_HPP_NOEXCEPT
56818     {
56819       return *reinterpret_cast<VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
56820     }
56821 
56822 
56823 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56824     auto operator<=>( PhysicalDeviceRayTracingFeaturesKHR const& ) const = default;
56825 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56826     bool operator==( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56827     {
56828       return ( sType == rhs.sType )
56829           && ( pNext == rhs.pNext )
56830           && ( rayTracing == rhs.rayTracing )
56831           && ( rayTracingShaderGroupHandleCaptureReplay == rhs.rayTracingShaderGroupHandleCaptureReplay )
56832           && ( rayTracingShaderGroupHandleCaptureReplayMixed == rhs.rayTracingShaderGroupHandleCaptureReplayMixed )
56833           && ( rayTracingAccelerationStructureCaptureReplay == rhs.rayTracingAccelerationStructureCaptureReplay )
56834           && ( rayTracingIndirectTraceRays == rhs.rayTracingIndirectTraceRays )
56835           && ( rayTracingIndirectAccelerationStructureBuild == rhs.rayTracingIndirectAccelerationStructureBuild )
56836           && ( rayTracingHostAccelerationStructureCommands == rhs.rayTracingHostAccelerationStructureCommands )
56837           && ( rayQuery == rhs.rayQuery )
56838           && ( rayTracingPrimitiveCulling == rhs.rayTracingPrimitiveCulling );
56839     }
56840 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR56841     bool operator!=( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56842     {
56843       return !operator==( rhs );
56844     }
56845 #endif
56846 
56847 
56848 
56849   public:
56850     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
56851     void* pNext = {};
56852     VULKAN_HPP_NAMESPACE::Bool32 rayTracing = {};
56853     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay = {};
56854     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed = {};
56855     VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay = {};
56856     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays = {};
56857     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild = {};
56858     VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands = {};
56859     VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
56860     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling = {};
56861 
56862   };
56863   static_assert( sizeof( PhysicalDeviceRayTracingFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingFeaturesKHR ), "struct and wrapper have different size!" );
56864   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
56865 
56866   template <>
56867   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingFeaturesKHR>
56868   {
56869     using Type = PhysicalDeviceRayTracingFeaturesKHR;
56870   };
56871 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
56872 
56873 #ifdef VK_ENABLE_BETA_EXTENSIONS
56874   struct PhysicalDeviceRayTracingPropertiesKHR
56875   {
56876     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
56877 
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56878     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesKHR( uint32_t shaderGroupHandleSize_ = {},
56879                                                                 uint32_t maxRecursionDepth_ = {},
56880                                                                 uint32_t maxShaderGroupStride_ = {},
56881                                                                 uint32_t shaderGroupBaseAlignment_ = {},
56882                                                                 uint64_t maxGeometryCount_ = {},
56883                                                                 uint64_t maxInstanceCount_ = {},
56884                                                                 uint64_t maxPrimitiveCount_ = {},
56885                                                                 uint32_t maxDescriptorSetAccelerationStructures_ = {},
56886                                                                 uint32_t shaderGroupHandleCaptureReplaySize_ = {} ) VULKAN_HPP_NOEXCEPT
56887       : shaderGroupHandleSize( shaderGroupHandleSize_ )
56888       , maxRecursionDepth( maxRecursionDepth_ )
56889       , maxShaderGroupStride( maxShaderGroupStride_ )
56890       , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
56891       , maxGeometryCount( maxGeometryCount_ )
56892       , maxInstanceCount( maxInstanceCount_ )
56893       , maxPrimitiveCount( maxPrimitiveCount_ )
56894       , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
56895       , shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ )
56896     {}
56897 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56898     PhysicalDeviceRayTracingPropertiesKHR & operator=( PhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56899     {
56900       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceRayTracingPropertiesKHR ) - offsetof( PhysicalDeviceRayTracingPropertiesKHR, pNext ) );
56901       return *this;
56902     }
56903 
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56904     PhysicalDeviceRayTracingPropertiesKHR( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56905     {
56906       *this = rhs;
56907     }
56908 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56909     PhysicalDeviceRayTracingPropertiesKHR& operator=( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56910     {
56911       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR const *>(&rhs);
56912       return *this;
56913     }
56914 
56915 
operator VkPhysicalDeviceRayTracingPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56916     operator VkPhysicalDeviceRayTracingPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
56917     {
56918       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
56919     }
56920 
operator VkPhysicalDeviceRayTracingPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56921     operator VkPhysicalDeviceRayTracingPropertiesKHR &() VULKAN_HPP_NOEXCEPT
56922     {
56923       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
56924     }
56925 
56926 
56927 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56928     auto operator<=>( PhysicalDeviceRayTracingPropertiesKHR const& ) const = default;
56929 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56930     bool operator==( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56931     {
56932       return ( sType == rhs.sType )
56933           && ( pNext == rhs.pNext )
56934           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
56935           && ( maxRecursionDepth == rhs.maxRecursionDepth )
56936           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
56937           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
56938           && ( maxGeometryCount == rhs.maxGeometryCount )
56939           && ( maxInstanceCount == rhs.maxInstanceCount )
56940           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
56941           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures )
56942           && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize );
56943     }
56944 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR56945     bool operator!=( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56946     {
56947       return !operator==( rhs );
56948     }
56949 #endif
56950 
56951 
56952 
56953   public:
56954     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
56955     void* pNext = {};
56956     uint32_t shaderGroupHandleSize = {};
56957     uint32_t maxRecursionDepth = {};
56958     uint32_t maxShaderGroupStride = {};
56959     uint32_t shaderGroupBaseAlignment = {};
56960     uint64_t maxGeometryCount = {};
56961     uint64_t maxInstanceCount = {};
56962     uint64_t maxPrimitiveCount = {};
56963     uint32_t maxDescriptorSetAccelerationStructures = {};
56964     uint32_t shaderGroupHandleCaptureReplaySize = {};
56965 
56966   };
56967   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesKHR ) == sizeof( VkPhysicalDeviceRayTracingPropertiesKHR ), "struct and wrapper have different size!" );
56968   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
56969 
56970   template <>
56971   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesKHR>
56972   {
56973     using Type = PhysicalDeviceRayTracingPropertiesKHR;
56974   };
56975 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
56976 
56977   struct PhysicalDeviceRayTracingPropertiesNV
56978   {
56979     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
56980 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV56981     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( uint32_t shaderGroupHandleSize_ = {},
56982                                                                uint32_t maxRecursionDepth_ = {},
56983                                                                uint32_t maxShaderGroupStride_ = {},
56984                                                                uint32_t shaderGroupBaseAlignment_ = {},
56985                                                                uint64_t maxGeometryCount_ = {},
56986                                                                uint64_t maxInstanceCount_ = {},
56987                                                                uint64_t maxTriangleCount_ = {},
56988                                                                uint32_t maxDescriptorSetAccelerationStructures_ = {} ) VULKAN_HPP_NOEXCEPT
56989       : shaderGroupHandleSize( shaderGroupHandleSize_ )
56990       , maxRecursionDepth( maxRecursionDepth_ )
56991       , maxShaderGroupStride( maxShaderGroupStride_ )
56992       , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
56993       , maxGeometryCount( maxGeometryCount_ )
56994       , maxInstanceCount( maxInstanceCount_ )
56995       , maxTriangleCount( maxTriangleCount_ )
56996       , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
56997     {}
56998 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV56999     PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57000     {
57001       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceRayTracingPropertiesNV ) - offsetof( PhysicalDeviceRayTracingPropertiesNV, pNext ) );
57002       return *this;
57003     }
57004 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV57005     PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57006     {
57007       *this = rhs;
57008     }
57009 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV57010     PhysicalDeviceRayTracingPropertiesNV& operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57011     {
57012       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>(&rhs);
57013       return *this;
57014     }
57015 
57016 
operator VkPhysicalDeviceRayTracingPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV57017     operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
57018     {
57019       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
57020     }
57021 
operator VkPhysicalDeviceRayTracingPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV57022     operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
57023     {
57024       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
57025     }
57026 
57027 
57028 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57029     auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const& ) const = default;
57030 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV57031     bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57032     {
57033       return ( sType == rhs.sType )
57034           && ( pNext == rhs.pNext )
57035           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
57036           && ( maxRecursionDepth == rhs.maxRecursionDepth )
57037           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
57038           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
57039           && ( maxGeometryCount == rhs.maxGeometryCount )
57040           && ( maxInstanceCount == rhs.maxInstanceCount )
57041           && ( maxTriangleCount == rhs.maxTriangleCount )
57042           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
57043     }
57044 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV57045     bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57046     {
57047       return !operator==( rhs );
57048     }
57049 #endif
57050 
57051 
57052 
57053   public:
57054     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
57055     void* pNext = {};
57056     uint32_t shaderGroupHandleSize = {};
57057     uint32_t maxRecursionDepth = {};
57058     uint32_t maxShaderGroupStride = {};
57059     uint32_t shaderGroupBaseAlignment = {};
57060     uint64_t maxGeometryCount = {};
57061     uint64_t maxInstanceCount = {};
57062     uint64_t maxTriangleCount = {};
57063     uint32_t maxDescriptorSetAccelerationStructures = {};
57064 
57065   };
57066   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" );
57067   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesNV>::value, "struct wrapper is not a standard layout!" );
57068 
57069   template <>
57070   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
57071   {
57072     using Type = PhysicalDeviceRayTracingPropertiesNV;
57073   };
57074 
57075   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
57076   {
57077     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
57078 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57079     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {} ) VULKAN_HPP_NOEXCEPT
57080       : representativeFragmentTest( representativeFragmentTest_ )
57081     {}
57082 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57083     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57084     {
57085       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) - offsetof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV, pNext ) );
57086       return *this;
57087     }
57088 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57089     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57090     {
57091       *this = rhs;
57092     }
57093 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57094     PhysicalDeviceRepresentativeFragmentTestFeaturesNV& operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57095     {
57096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>(&rhs);
57097       return *this;
57098     }
57099 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57100     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57101     {
57102       pNext = pNext_;
57103       return *this;
57104     }
57105 
setRepresentativeFragmentTestVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57106     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
57107     {
57108       representativeFragmentTest = representativeFragmentTest_;
57109       return *this;
57110     }
57111 
57112 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57113     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
57114     {
57115       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
57116     }
57117 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57118     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
57119     {
57120       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
57121     }
57122 
57123 
57124 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57125     auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& ) const = default;
57126 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57127     bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57128     {
57129       return ( sType == rhs.sType )
57130           && ( pNext == rhs.pNext )
57131           && ( representativeFragmentTest == rhs.representativeFragmentTest );
57132     }
57133 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV57134     bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57135     {
57136       return !operator==( rhs );
57137     }
57138 #endif
57139 
57140 
57141 
57142   public:
57143     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
57144     void* pNext = {};
57145     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
57146 
57147   };
57148   static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" );
57149   static_assert( std::is_standard_layout<PhysicalDeviceRepresentativeFragmentTestFeaturesNV>::value, "struct wrapper is not a standard layout!" );
57150 
57151   template <>
57152   struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
57153   {
57154     using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
57155   };
57156 
57157   struct PhysicalDeviceRobustness2FeaturesEXT
57158   {
57159     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
57160 
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57161     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {},
57162                                                                VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {},
57163                                                                VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {} ) VULKAN_HPP_NOEXCEPT
57164       : robustBufferAccess2( robustBufferAccess2_ )
57165       , robustImageAccess2( robustImageAccess2_ )
57166       , nullDescriptor( nullDescriptor_ )
57167     {}
57168 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57169     PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57170     {
57171       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceRobustness2FeaturesEXT ) - offsetof( PhysicalDeviceRobustness2FeaturesEXT, pNext ) );
57172       return *this;
57173     }
57174 
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57175     PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57176     {
57177       *this = rhs;
57178     }
57179 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57180     PhysicalDeviceRobustness2FeaturesEXT& operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57181     {
57182       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>(&rhs);
57183       return *this;
57184     }
57185 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57186     PhysicalDeviceRobustness2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57187     {
57188       pNext = pNext_;
57189       return *this;
57190     }
57191 
setRobustBufferAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57192     PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
57193     {
57194       robustBufferAccess2 = robustBufferAccess2_;
57195       return *this;
57196     }
57197 
setRobustImageAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57198     PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
57199     {
57200       robustImageAccess2 = robustImageAccess2_;
57201       return *this;
57202     }
57203 
setNullDescriptorVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57204     PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
57205     {
57206       nullDescriptor = nullDescriptor_;
57207       return *this;
57208     }
57209 
57210 
operator VkPhysicalDeviceRobustness2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57211     operator VkPhysicalDeviceRobustness2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
57212     {
57213       return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
57214     }
57215 
operator VkPhysicalDeviceRobustness2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57216     operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
57217     {
57218       return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
57219     }
57220 
57221 
57222 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57223     auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const& ) const = default;
57224 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57225     bool operator==( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57226     {
57227       return ( sType == rhs.sType )
57228           && ( pNext == rhs.pNext )
57229           && ( robustBufferAccess2 == rhs.robustBufferAccess2 )
57230           && ( robustImageAccess2 == rhs.robustImageAccess2 )
57231           && ( nullDescriptor == rhs.nullDescriptor );
57232     }
57233 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT57234     bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57235     {
57236       return !operator==( rhs );
57237     }
57238 #endif
57239 
57240 
57241 
57242   public:
57243     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
57244     void* pNext = {};
57245     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
57246     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
57247     VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
57248 
57249   };
57250   static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), "struct and wrapper have different size!" );
57251   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
57252 
57253   template <>
57254   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
57255   {
57256     using Type = PhysicalDeviceRobustness2FeaturesEXT;
57257   };
57258 
57259   struct PhysicalDeviceRobustness2PropertiesEXT
57260   {
57261     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
57262 
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57263     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {},
57264                                                                  VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {} ) VULKAN_HPP_NOEXCEPT
57265       : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ )
57266       , robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
57267     {}
57268 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57269     PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57270     {
57271       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceRobustness2PropertiesEXT ) - offsetof( PhysicalDeviceRobustness2PropertiesEXT, pNext ) );
57272       return *this;
57273     }
57274 
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57275     PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57276     {
57277       *this = rhs;
57278     }
57279 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57280     PhysicalDeviceRobustness2PropertiesEXT& operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57281     {
57282       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>(&rhs);
57283       return *this;
57284     }
57285 
57286 
operator VkPhysicalDeviceRobustness2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57287     operator VkPhysicalDeviceRobustness2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
57288     {
57289       return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
57290     }
57291 
operator VkPhysicalDeviceRobustness2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57292     operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
57293     {
57294       return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
57295     }
57296 
57297 
57298 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57299     auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const& ) const = default;
57300 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57301     bool operator==( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57302     {
57303       return ( sType == rhs.sType )
57304           && ( pNext == rhs.pNext )
57305           && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment )
57306           && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
57307     }
57308 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT57309     bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57310     {
57311       return !operator==( rhs );
57312     }
57313 #endif
57314 
57315 
57316 
57317   public:
57318     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
57319     void* pNext = {};
57320     VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
57321     VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
57322 
57323   };
57324   static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), "struct and wrapper have different size!" );
57325   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
57326 
57327   template <>
57328   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
57329   {
57330     using Type = PhysicalDeviceRobustness2PropertiesEXT;
57331   };
57332 
57333   struct PhysicalDeviceSampleLocationsPropertiesEXT
57334   {
57335     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
57336 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57337     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {},
57338                                                                         VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {},
57339                                                                         std::array<float,2> const& sampleLocationCoordinateRange_ = {},
57340                                                                         uint32_t sampleLocationSubPixelBits_ = {},
57341                                                                         VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT
57342       : sampleLocationSampleCounts( sampleLocationSampleCounts_ )
57343       , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
57344       , sampleLocationCoordinateRange( sampleLocationCoordinateRange_ )
57345       , sampleLocationSubPixelBits( sampleLocationSubPixelBits_ )
57346       , variableSampleLocations( variableSampleLocations_ )
57347     {}
57348 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57349     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57350     {
57351       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) - offsetof( PhysicalDeviceSampleLocationsPropertiesEXT, pNext ) );
57352       return *this;
57353     }
57354 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57355     PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57356     {
57357       *this = rhs;
57358     }
57359 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57360     PhysicalDeviceSampleLocationsPropertiesEXT& operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57361     {
57362       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>(&rhs);
57363       return *this;
57364     }
57365 
57366 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57367     operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
57368     {
57369       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
57370     }
57371 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57372     operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
57373     {
57374       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
57375     }
57376 
57377 
57378 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57379     auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const& ) const = default;
57380 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57381     bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57382     {
57383       return ( sType == rhs.sType )
57384           && ( pNext == rhs.pNext )
57385           && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
57386           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
57387           && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange )
57388           && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
57389           && ( variableSampleLocations == rhs.variableSampleLocations );
57390     }
57391 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT57392     bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57393     {
57394       return !operator==( rhs );
57395     }
57396 #endif
57397 
57398 
57399 
57400   public:
57401     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
57402     void* pNext = {};
57403     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
57404     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
57405     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
57406     uint32_t sampleLocationSubPixelBits = {};
57407     VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
57408 
57409   };
57410   static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" );
57411   static_assert( std::is_standard_layout<PhysicalDeviceSampleLocationsPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
57412 
57413   template <>
57414   struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
57415   {
57416     using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
57417   };
57418 
57419   struct PhysicalDeviceSamplerFilterMinmaxProperties
57420   {
57421     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
57422 
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57423     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {},
57424                                                                       VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {} ) VULKAN_HPP_NOEXCEPT
57425       : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
57426       , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
57427     {}
57428 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57429     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57430     {
57431       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) - offsetof( PhysicalDeviceSamplerFilterMinmaxProperties, pNext ) );
57432       return *this;
57433     }
57434 
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57435     PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57436     {
57437       *this = rhs;
57438     }
57439 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57440     PhysicalDeviceSamplerFilterMinmaxProperties& operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57441     {
57442       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>(&rhs);
57443       return *this;
57444     }
57445 
57446 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57447     operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT
57448     {
57449       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
57450     }
57451 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57452     operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
57453     {
57454       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
57455     }
57456 
57457 
57458 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57459     auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const& ) const = default;
57460 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57461     bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57462     {
57463       return ( sType == rhs.sType )
57464           && ( pNext == rhs.pNext )
57465           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
57466           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
57467     }
57468 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties57469     bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57470     {
57471       return !operator==( rhs );
57472     }
57473 #endif
57474 
57475 
57476 
57477   public:
57478     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
57479     void* pNext = {};
57480     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
57481     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
57482 
57483   };
57484   static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" );
57485   static_assert( std::is_standard_layout<PhysicalDeviceSamplerFilterMinmaxProperties>::value, "struct wrapper is not a standard layout!" );
57486 
57487   template <>
57488   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
57489   {
57490     using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
57491   };
57492 
57493   struct PhysicalDeviceSamplerYcbcrConversionFeatures
57494   {
57495     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
57496 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57497     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {} ) VULKAN_HPP_NOEXCEPT
57498       : samplerYcbcrConversion( samplerYcbcrConversion_ )
57499     {}
57500 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57501     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57502     {
57503       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) - offsetof( PhysicalDeviceSamplerYcbcrConversionFeatures, pNext ) );
57504       return *this;
57505     }
57506 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57507     PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57508     {
57509       *this = rhs;
57510     }
57511 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57512     PhysicalDeviceSamplerYcbcrConversionFeatures& operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57513     {
57514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>(&rhs);
57515       return *this;
57516     }
57517 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57518     PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57519     {
57520       pNext = pNext_;
57521       return *this;
57522     }
57523 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57524     PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
57525     {
57526       samplerYcbcrConversion = samplerYcbcrConversion_;
57527       return *this;
57528     }
57529 
57530 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57531     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT
57532     {
57533       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
57534     }
57535 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57536     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
57537     {
57538       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
57539     }
57540 
57541 
57542 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57543     auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const& ) const = default;
57544 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57545     bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
57546     {
57547       return ( sType == rhs.sType )
57548           && ( pNext == rhs.pNext )
57549           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
57550     }
57551 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures57552     bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
57553     {
57554       return !operator==( rhs );
57555     }
57556 #endif
57557 
57558 
57559 
57560   public:
57561     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
57562     void* pNext = {};
57563     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
57564 
57565   };
57566   static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" );
57567   static_assert( std::is_standard_layout<PhysicalDeviceSamplerYcbcrConversionFeatures>::value, "struct wrapper is not a standard layout!" );
57568 
57569   template <>
57570   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
57571   {
57572     using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
57573   };
57574 
57575   struct PhysicalDeviceScalarBlockLayoutFeatures
57576   {
57577     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
57578 
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57579     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {} ) VULKAN_HPP_NOEXCEPT
57580       : scalarBlockLayout( scalarBlockLayout_ )
57581     {}
57582 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57583     PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57584     {
57585       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) - offsetof( PhysicalDeviceScalarBlockLayoutFeatures, pNext ) );
57586       return *this;
57587     }
57588 
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57589     PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57590     {
57591       *this = rhs;
57592     }
57593 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57594     PhysicalDeviceScalarBlockLayoutFeatures& operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57595     {
57596       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>(&rhs);
57597       return *this;
57598     }
57599 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57600     PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57601     {
57602       pNext = pNext_;
57603       return *this;
57604     }
57605 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57606     PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
57607     {
57608       scalarBlockLayout = scalarBlockLayout_;
57609       return *this;
57610     }
57611 
57612 
operator VkPhysicalDeviceScalarBlockLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57613     operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
57614     {
57615       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
57616     }
57617 
operator VkPhysicalDeviceScalarBlockLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57618     operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
57619     {
57620       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
57621     }
57622 
57623 
57624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57625     auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const& ) const = default;
57626 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57627     bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
57628     {
57629       return ( sType == rhs.sType )
57630           && ( pNext == rhs.pNext )
57631           && ( scalarBlockLayout == rhs.scalarBlockLayout );
57632     }
57633 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures57634     bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
57635     {
57636       return !operator==( rhs );
57637     }
57638 #endif
57639 
57640 
57641 
57642   public:
57643     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
57644     void* pNext = {};
57645     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
57646 
57647   };
57648   static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" );
57649   static_assert( std::is_standard_layout<PhysicalDeviceScalarBlockLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
57650 
57651   template <>
57652   struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
57653   {
57654     using Type = PhysicalDeviceScalarBlockLayoutFeatures;
57655   };
57656 
57657   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
57658   {
57659     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
57660 
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57661     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {} ) VULKAN_HPP_NOEXCEPT
57662       : separateDepthStencilLayouts( separateDepthStencilLayouts_ )
57663     {}
57664 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57665     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57666     {
57667       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) - offsetof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures, pNext ) );
57668       return *this;
57669     }
57670 
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57671     PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57672     {
57673       *this = rhs;
57674     }
57675 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57676     PhysicalDeviceSeparateDepthStencilLayoutsFeatures& operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
57677     {
57678       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>(&rhs);
57679       return *this;
57680     }
57681 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57682     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57683     {
57684       pNext = pNext_;
57685       return *this;
57686     }
57687 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57688     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
57689     {
57690       separateDepthStencilLayouts = separateDepthStencilLayouts_;
57691       return *this;
57692     }
57693 
57694 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57695     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT
57696     {
57697       return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
57698     }
57699 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57700     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
57701     {
57702       return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
57703     }
57704 
57705 
57706 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57707     auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& ) const = default;
57708 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57709     bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
57710     {
57711       return ( sType == rhs.sType )
57712           && ( pNext == rhs.pNext )
57713           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
57714     }
57715 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures57716     bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
57717     {
57718       return !operator==( rhs );
57719     }
57720 #endif
57721 
57722 
57723 
57724   public:
57725     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
57726     void* pNext = {};
57727     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
57728 
57729   };
57730   static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" );
57731   static_assert( std::is_standard_layout<PhysicalDeviceSeparateDepthStencilLayoutsFeatures>::value, "struct wrapper is not a standard layout!" );
57732 
57733   template <>
57734   struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
57735   {
57736     using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
57737   };
57738 
57739   struct PhysicalDeviceShaderAtomicInt64Features
57740   {
57741     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
57742 
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57743     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {},
57744                                                                   VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {} ) VULKAN_HPP_NOEXCEPT
57745       : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
57746       , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
57747     {}
57748 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57749     PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
57750     {
57751       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderAtomicInt64Features ) - offsetof( PhysicalDeviceShaderAtomicInt64Features, pNext ) );
57752       return *this;
57753     }
57754 
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57755     PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
57756     {
57757       *this = rhs;
57758     }
57759 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57760     PhysicalDeviceShaderAtomicInt64Features& operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
57761     {
57762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>(&rhs);
57763       return *this;
57764     }
57765 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57766     PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57767     {
57768       pNext = pNext_;
57769       return *this;
57770     }
57771 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57772     PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
57773     {
57774       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
57775       return *this;
57776     }
57777 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57778     PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
57779     {
57780       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
57781       return *this;
57782     }
57783 
57784 
operator VkPhysicalDeviceShaderAtomicInt64Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57785     operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT
57786     {
57787       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>( this );
57788     }
57789 
operator VkPhysicalDeviceShaderAtomicInt64Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57790     operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
57791     {
57792       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>( this );
57793     }
57794 
57795 
57796 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57797     auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const& ) const = default;
57798 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57799     bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
57800     {
57801       return ( sType == rhs.sType )
57802           && ( pNext == rhs.pNext )
57803           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
57804           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
57805     }
57806 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features57807     bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
57808     {
57809       return !operator==( rhs );
57810     }
57811 #endif
57812 
57813 
57814 
57815   public:
57816     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
57817     void* pNext = {};
57818     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
57819     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
57820 
57821   };
57822   static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" );
57823   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicInt64Features>::value, "struct wrapper is not a standard layout!" );
57824 
57825   template <>
57826   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
57827   {
57828     using Type = PhysicalDeviceShaderAtomicInt64Features;
57829   };
57830 
57831   struct PhysicalDeviceShaderClockFeaturesKHR
57832   {
57833     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
57834 
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57835     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {},
57836                                                                VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {} ) VULKAN_HPP_NOEXCEPT
57837       : shaderSubgroupClock( shaderSubgroupClock_ )
57838       , shaderDeviceClock( shaderDeviceClock_ )
57839     {}
57840 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57841     PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57842     {
57843       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderClockFeaturesKHR ) - offsetof( PhysicalDeviceShaderClockFeaturesKHR, pNext ) );
57844       return *this;
57845     }
57846 
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57847     PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57848     {
57849       *this = rhs;
57850     }
57851 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57852     PhysicalDeviceShaderClockFeaturesKHR& operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57853     {
57854       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>(&rhs);
57855       return *this;
57856     }
57857 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57858     PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57859     {
57860       pNext = pNext_;
57861       return *this;
57862     }
57863 
setShaderSubgroupClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57864     PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
57865     {
57866       shaderSubgroupClock = shaderSubgroupClock_;
57867       return *this;
57868     }
57869 
setShaderDeviceClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57870     PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
57871     {
57872       shaderDeviceClock = shaderDeviceClock_;
57873       return *this;
57874     }
57875 
57876 
operator VkPhysicalDeviceShaderClockFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57877     operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
57878     {
57879       return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
57880     }
57881 
operator VkPhysicalDeviceShaderClockFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57882     operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
57883     {
57884       return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
57885     }
57886 
57887 
57888 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57889     auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const& ) const = default;
57890 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57891     bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57892     {
57893       return ( sType == rhs.sType )
57894           && ( pNext == rhs.pNext )
57895           && ( shaderSubgroupClock == rhs.shaderSubgroupClock )
57896           && ( shaderDeviceClock == rhs.shaderDeviceClock );
57897     }
57898 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR57899     bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57900     {
57901       return !operator==( rhs );
57902     }
57903 #endif
57904 
57905 
57906 
57907   public:
57908     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
57909     void* pNext = {};
57910     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
57911     VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
57912 
57913   };
57914   static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" );
57915   static_assert( std::is_standard_layout<PhysicalDeviceShaderClockFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
57916 
57917   template <>
57918   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
57919   {
57920     using Type = PhysicalDeviceShaderClockFeaturesKHR;
57921   };
57922 
57923   struct PhysicalDeviceShaderCoreProperties2AMD
57924   {
57925     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
57926 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57927     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {},
57928                                                                  uint32_t activeComputeUnitCount_ = {} ) VULKAN_HPP_NOEXCEPT
57929       : shaderCoreFeatures( shaderCoreFeatures_ )
57930       , activeComputeUnitCount( activeComputeUnitCount_ )
57931     {}
57932 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57933     PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
57934     {
57935       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderCoreProperties2AMD ) - offsetof( PhysicalDeviceShaderCoreProperties2AMD, pNext ) );
57936       return *this;
57937     }
57938 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57939     PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
57940     {
57941       *this = rhs;
57942     }
57943 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57944     PhysicalDeviceShaderCoreProperties2AMD& operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
57945     {
57946       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>(&rhs);
57947       return *this;
57948     }
57949 
57950 
operator VkPhysicalDeviceShaderCoreProperties2AMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57951     operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT
57952     {
57953       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
57954     }
57955 
operator VkPhysicalDeviceShaderCoreProperties2AMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57956     operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
57957     {
57958       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
57959     }
57960 
57961 
57962 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57963     auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const& ) const = default;
57964 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57965     bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
57966     {
57967       return ( sType == rhs.sType )
57968           && ( pNext == rhs.pNext )
57969           && ( shaderCoreFeatures == rhs.shaderCoreFeatures )
57970           && ( activeComputeUnitCount == rhs.activeComputeUnitCount );
57971     }
57972 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD57973     bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
57974     {
57975       return !operator==( rhs );
57976     }
57977 #endif
57978 
57979 
57980 
57981   public:
57982     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
57983     void* pNext = {};
57984     VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
57985     uint32_t activeComputeUnitCount = {};
57986 
57987   };
57988   static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" );
57989   static_assert( std::is_standard_layout<PhysicalDeviceShaderCoreProperties2AMD>::value, "struct wrapper is not a standard layout!" );
57990 
57991   template <>
57992   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
57993   {
57994     using Type = PhysicalDeviceShaderCoreProperties2AMD;
57995   };
57996 
57997   struct PhysicalDeviceShaderCorePropertiesAMD
57998   {
57999     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
58000 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58001     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( uint32_t shaderEngineCount_ = {},
58002                                                                 uint32_t shaderArraysPerEngineCount_ = {},
58003                                                                 uint32_t computeUnitsPerShaderArray_ = {},
58004                                                                 uint32_t simdPerComputeUnit_ = {},
58005                                                                 uint32_t wavefrontsPerSimd_ = {},
58006                                                                 uint32_t wavefrontSize_ = {},
58007                                                                 uint32_t sgprsPerSimd_ = {},
58008                                                                 uint32_t minSgprAllocation_ = {},
58009                                                                 uint32_t maxSgprAllocation_ = {},
58010                                                                 uint32_t sgprAllocationGranularity_ = {},
58011                                                                 uint32_t vgprsPerSimd_ = {},
58012                                                                 uint32_t minVgprAllocation_ = {},
58013                                                                 uint32_t maxVgprAllocation_ = {},
58014                                                                 uint32_t vgprAllocationGranularity_ = {} ) VULKAN_HPP_NOEXCEPT
58015       : shaderEngineCount( shaderEngineCount_ )
58016       , shaderArraysPerEngineCount( shaderArraysPerEngineCount_ )
58017       , computeUnitsPerShaderArray( computeUnitsPerShaderArray_ )
58018       , simdPerComputeUnit( simdPerComputeUnit_ )
58019       , wavefrontsPerSimd( wavefrontsPerSimd_ )
58020       , wavefrontSize( wavefrontSize_ )
58021       , sgprsPerSimd( sgprsPerSimd_ )
58022       , minSgprAllocation( minSgprAllocation_ )
58023       , maxSgprAllocation( maxSgprAllocation_ )
58024       , sgprAllocationGranularity( sgprAllocationGranularity_ )
58025       , vgprsPerSimd( vgprsPerSimd_ )
58026       , minVgprAllocation( minVgprAllocation_ )
58027       , maxVgprAllocation( maxVgprAllocation_ )
58028       , vgprAllocationGranularity( vgprAllocationGranularity_ )
58029     {}
58030 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58031     PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
58032     {
58033       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderCorePropertiesAMD ) - offsetof( PhysicalDeviceShaderCorePropertiesAMD, pNext ) );
58034       return *this;
58035     }
58036 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58037     PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
58038     {
58039       *this = rhs;
58040     }
58041 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58042     PhysicalDeviceShaderCorePropertiesAMD& operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
58043     {
58044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>(&rhs);
58045       return *this;
58046     }
58047 
58048 
operator VkPhysicalDeviceShaderCorePropertiesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58049     operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
58050     {
58051       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
58052     }
58053 
operator VkPhysicalDeviceShaderCorePropertiesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58054     operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
58055     {
58056       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
58057     }
58058 
58059 
58060 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58061     auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const& ) const = default;
58062 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58063     bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
58064     {
58065       return ( sType == rhs.sType )
58066           && ( pNext == rhs.pNext )
58067           && ( shaderEngineCount == rhs.shaderEngineCount )
58068           && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
58069           && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
58070           && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
58071           && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
58072           && ( wavefrontSize == rhs.wavefrontSize )
58073           && ( sgprsPerSimd == rhs.sgprsPerSimd )
58074           && ( minSgprAllocation == rhs.minSgprAllocation )
58075           && ( maxSgprAllocation == rhs.maxSgprAllocation )
58076           && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
58077           && ( vgprsPerSimd == rhs.vgprsPerSimd )
58078           && ( minVgprAllocation == rhs.minVgprAllocation )
58079           && ( maxVgprAllocation == rhs.maxVgprAllocation )
58080           && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
58081     }
58082 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD58083     bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
58084     {
58085       return !operator==( rhs );
58086     }
58087 #endif
58088 
58089 
58090 
58091   public:
58092     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
58093     void* pNext = {};
58094     uint32_t shaderEngineCount = {};
58095     uint32_t shaderArraysPerEngineCount = {};
58096     uint32_t computeUnitsPerShaderArray = {};
58097     uint32_t simdPerComputeUnit = {};
58098     uint32_t wavefrontsPerSimd = {};
58099     uint32_t wavefrontSize = {};
58100     uint32_t sgprsPerSimd = {};
58101     uint32_t minSgprAllocation = {};
58102     uint32_t maxSgprAllocation = {};
58103     uint32_t sgprAllocationGranularity = {};
58104     uint32_t vgprsPerSimd = {};
58105     uint32_t minVgprAllocation = {};
58106     uint32_t maxVgprAllocation = {};
58107     uint32_t vgprAllocationGranularity = {};
58108 
58109   };
58110   static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" );
58111   static_assert( std::is_standard_layout<PhysicalDeviceShaderCorePropertiesAMD>::value, "struct wrapper is not a standard layout!" );
58112 
58113   template <>
58114   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
58115   {
58116     using Type = PhysicalDeviceShaderCorePropertiesAMD;
58117   };
58118 
58119   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
58120   {
58121     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
58122 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58123     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {} ) VULKAN_HPP_NOEXCEPT
58124       : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
58125     {}
58126 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58127     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58128     {
58129       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) - offsetof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, pNext ) );
58130       return *this;
58131     }
58132 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58133     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58134     {
58135       *this = rhs;
58136     }
58137 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58138     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58139     {
58140       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const *>(&rhs);
58141       return *this;
58142     }
58143 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58144     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58145     {
58146       pNext = pNext_;
58147       return *this;
58148     }
58149 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58150     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
58151     {
58152       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
58153       return *this;
58154     }
58155 
58156 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58157     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
58158     {
58159       return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
58160     }
58161 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58162     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
58163     {
58164       return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
58165     }
58166 
58167 
58168 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58169     auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& ) const = default;
58170 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58171     bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58172     {
58173       return ( sType == rhs.sType )
58174           && ( pNext == rhs.pNext )
58175           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
58176     }
58177 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT58178     bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58179     {
58180       return !operator==( rhs );
58181     }
58182 #endif
58183 
58184 
58185 
58186   public:
58187     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
58188     void* pNext = {};
58189     VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
58190 
58191   };
58192   static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" );
58193   static_assert( std::is_standard_layout<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
58194 
58195   template <>
58196   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>
58197   {
58198     using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
58199   };
58200 
58201   struct PhysicalDeviceShaderDrawParametersFeatures
58202   {
58203     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
58204 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58205     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {} ) VULKAN_HPP_NOEXCEPT
58206       : shaderDrawParameters( shaderDrawParameters_ )
58207     {}
58208 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58209     PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58210     {
58211       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderDrawParametersFeatures ) - offsetof( PhysicalDeviceShaderDrawParametersFeatures, pNext ) );
58212       return *this;
58213     }
58214 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58215     PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58216     {
58217       *this = rhs;
58218     }
58219 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58220     PhysicalDeviceShaderDrawParametersFeatures& operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58221     {
58222       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>(&rhs);
58223       return *this;
58224     }
58225 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58226     PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58227     {
58228       pNext = pNext_;
58229       return *this;
58230     }
58231 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58232     PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
58233     {
58234       shaderDrawParameters = shaderDrawParameters_;
58235       return *this;
58236     }
58237 
58238 
operator VkPhysicalDeviceShaderDrawParametersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58239     operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT
58240     {
58241       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
58242     }
58243 
operator VkPhysicalDeviceShaderDrawParametersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58244     operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
58245     {
58246       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
58247     }
58248 
58249 
58250 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58251     auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const& ) const = default;
58252 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58253     bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
58254     {
58255       return ( sType == rhs.sType )
58256           && ( pNext == rhs.pNext )
58257           && ( shaderDrawParameters == rhs.shaderDrawParameters );
58258     }
58259 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures58260     bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
58261     {
58262       return !operator==( rhs );
58263     }
58264 #endif
58265 
58266 
58267 
58268   public:
58269     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
58270     void* pNext = {};
58271     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
58272 
58273   };
58274   static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" );
58275   static_assert( std::is_standard_layout<PhysicalDeviceShaderDrawParametersFeatures>::value, "struct wrapper is not a standard layout!" );
58276 
58277   template <>
58278   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
58279   {
58280     using Type = PhysicalDeviceShaderDrawParametersFeatures;
58281   };
58282 
58283   struct PhysicalDeviceShaderFloat16Int8Features
58284   {
58285     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
58286 
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58287     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {},
58288                                                                   VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {} ) VULKAN_HPP_NOEXCEPT
58289       : shaderFloat16( shaderFloat16_ )
58290       , shaderInt8( shaderInt8_ )
58291     {}
58292 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58293     PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
58294     {
58295       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderFloat16Int8Features ) - offsetof( PhysicalDeviceShaderFloat16Int8Features, pNext ) );
58296       return *this;
58297     }
58298 
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58299     PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
58300     {
58301       *this = rhs;
58302     }
58303 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58304     PhysicalDeviceShaderFloat16Int8Features& operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
58305     {
58306       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>(&rhs);
58307       return *this;
58308     }
58309 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58310     PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58311     {
58312       pNext = pNext_;
58313       return *this;
58314     }
58315 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58316     PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
58317     {
58318       shaderFloat16 = shaderFloat16_;
58319       return *this;
58320     }
58321 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58322     PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
58323     {
58324       shaderInt8 = shaderInt8_;
58325       return *this;
58326     }
58327 
58328 
operator VkPhysicalDeviceShaderFloat16Int8Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58329     operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT
58330     {
58331       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>( this );
58332     }
58333 
operator VkPhysicalDeviceShaderFloat16Int8Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58334     operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
58335     {
58336       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>( this );
58337     }
58338 
58339 
58340 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58341     auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const& ) const = default;
58342 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58343     bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
58344     {
58345       return ( sType == rhs.sType )
58346           && ( pNext == rhs.pNext )
58347           && ( shaderFloat16 == rhs.shaderFloat16 )
58348           && ( shaderInt8 == rhs.shaderInt8 );
58349     }
58350 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features58351     bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
58352     {
58353       return !operator==( rhs );
58354     }
58355 #endif
58356 
58357 
58358 
58359   public:
58360     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
58361     void* pNext = {};
58362     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
58363     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
58364 
58365   };
58366   static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" );
58367   static_assert( std::is_standard_layout<PhysicalDeviceShaderFloat16Int8Features>::value, "struct wrapper is not a standard layout!" );
58368 
58369   template <>
58370   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
58371   {
58372     using Type = PhysicalDeviceShaderFloat16Int8Features;
58373   };
58374 
58375   struct PhysicalDeviceShaderImageFootprintFeaturesNV
58376   {
58377     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
58378 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58379     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {} ) VULKAN_HPP_NOEXCEPT
58380       : imageFootprint( imageFootprint_ )
58381     {}
58382 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58383     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58384     {
58385       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) - offsetof( PhysicalDeviceShaderImageFootprintFeaturesNV, pNext ) );
58386       return *this;
58387     }
58388 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58389     PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58390     {
58391       *this = rhs;
58392     }
58393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58394     PhysicalDeviceShaderImageFootprintFeaturesNV& operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58395     {
58396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>(&rhs);
58397       return *this;
58398     }
58399 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58400     PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58401     {
58402       pNext = pNext_;
58403       return *this;
58404     }
58405 
setImageFootprintVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58406     PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
58407     {
58408       imageFootprint = imageFootprint_;
58409       return *this;
58410     }
58411 
58412 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58413     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
58414     {
58415       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
58416     }
58417 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58418     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
58419     {
58420       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
58421     }
58422 
58423 
58424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58425     auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const& ) const = default;
58426 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58427     bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58428     {
58429       return ( sType == rhs.sType )
58430           && ( pNext == rhs.pNext )
58431           && ( imageFootprint == rhs.imageFootprint );
58432     }
58433 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV58434     bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58435     {
58436       return !operator==( rhs );
58437     }
58438 #endif
58439 
58440 
58441 
58442   public:
58443     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
58444     void* pNext = {};
58445     VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
58446 
58447   };
58448   static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" );
58449   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageFootprintFeaturesNV>::value, "struct wrapper is not a standard layout!" );
58450 
58451   template <>
58452   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
58453   {
58454     using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
58455   };
58456 
58457   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
58458   {
58459     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
58460 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58461     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {} ) VULKAN_HPP_NOEXCEPT
58462       : shaderIntegerFunctions2( shaderIntegerFunctions2_ )
58463     {}
58464 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58465     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
58466     {
58467       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) - offsetof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, pNext ) );
58468       return *this;
58469     }
58470 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58471     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
58472     {
58473       *this = rhs;
58474     }
58475 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58476     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
58477     {
58478       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>(&rhs);
58479       return *this;
58480     }
58481 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58482     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58483     {
58484       pNext = pNext_;
58485       return *this;
58486     }
58487 
setShaderIntegerFunctions2VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58488     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
58489     {
58490       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
58491       return *this;
58492     }
58493 
58494 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58495     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT
58496     {
58497       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
58498     }
58499 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58500     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
58501     {
58502       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
58503     }
58504 
58505 
58506 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58507     auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& ) const = default;
58508 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58509     bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
58510     {
58511       return ( sType == rhs.sType )
58512           && ( pNext == rhs.pNext )
58513           && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
58514     }
58515 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL58516     bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
58517     {
58518       return !operator==( rhs );
58519     }
58520 #endif
58521 
58522 
58523 
58524   public:
58525     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
58526     void* pNext = {};
58527     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
58528 
58529   };
58530   static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" );
58531   static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>::value, "struct wrapper is not a standard layout!" );
58532 
58533   template <>
58534   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
58535   {
58536     using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
58537   };
58538 
58539   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
58540   {
58541     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
58542 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58543     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {} ) VULKAN_HPP_NOEXCEPT
58544       : shaderSMBuiltins( shaderSMBuiltins_ )
58545     {}
58546 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58547     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58548     {
58549       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) - offsetof( PhysicalDeviceShaderSMBuiltinsFeaturesNV, pNext ) );
58550       return *this;
58551     }
58552 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58553     PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58554     {
58555       *this = rhs;
58556     }
58557 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58558     PhysicalDeviceShaderSMBuiltinsFeaturesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58559     {
58560       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>(&rhs);
58561       return *this;
58562     }
58563 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58564     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58565     {
58566       pNext = pNext_;
58567       return *this;
58568     }
58569 
setShaderSMBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58570     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
58571     {
58572       shaderSMBuiltins = shaderSMBuiltins_;
58573       return *this;
58574     }
58575 
58576 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58577     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
58578     {
58579       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
58580     }
58581 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58582     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
58583     {
58584       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
58585     }
58586 
58587 
58588 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58589     auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& ) const = default;
58590 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58591     bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58592     {
58593       return ( sType == rhs.sType )
58594           && ( pNext == rhs.pNext )
58595           && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
58596     }
58597 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV58598     bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58599     {
58600       return !operator==( rhs );
58601     }
58602 #endif
58603 
58604 
58605 
58606   public:
58607     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
58608     void* pNext = {};
58609     VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
58610 
58611   };
58612   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" );
58613   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
58614 
58615   template <>
58616   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
58617   {
58618     using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
58619   };
58620 
58621   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
58622   {
58623     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
58624 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58625     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( uint32_t shaderSMCount_ = {},
58626                                                                      uint32_t shaderWarpsPerSM_ = {} ) VULKAN_HPP_NOEXCEPT
58627       : shaderSMCount( shaderSMCount_ )
58628       , shaderWarpsPerSM( shaderWarpsPerSM_ )
58629     {}
58630 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58631     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58632     {
58633       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) - offsetof( PhysicalDeviceShaderSMBuiltinsPropertiesNV, pNext ) );
58634       return *this;
58635     }
58636 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58637     PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58638     {
58639       *this = rhs;
58640     }
58641 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58642     PhysicalDeviceShaderSMBuiltinsPropertiesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58643     {
58644       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>(&rhs);
58645       return *this;
58646     }
58647 
58648 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58649     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
58650     {
58651       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
58652     }
58653 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58654     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
58655     {
58656       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
58657     }
58658 
58659 
58660 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58661     auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& ) const = default;
58662 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58663     bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58664     {
58665       return ( sType == rhs.sType )
58666           && ( pNext == rhs.pNext )
58667           && ( shaderSMCount == rhs.shaderSMCount )
58668           && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
58669     }
58670 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV58671     bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58672     {
58673       return !operator==( rhs );
58674     }
58675 #endif
58676 
58677 
58678 
58679   public:
58680     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
58681     void* pNext = {};
58682     uint32_t shaderSMCount = {};
58683     uint32_t shaderWarpsPerSM = {};
58684 
58685   };
58686   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" );
58687   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
58688 
58689   template <>
58690   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
58691   {
58692     using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
58693   };
58694 
58695   struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
58696   {
58697     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
58698 
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58699     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {} ) VULKAN_HPP_NOEXCEPT
58700       : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
58701     {}
58702 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58703     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58704     {
58705       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) - offsetof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures, pNext ) );
58706       return *this;
58707     }
58708 
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58709     PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58710     {
58711       *this = rhs;
58712     }
58713 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58714     PhysicalDeviceShaderSubgroupExtendedTypesFeatures& operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58715     {
58716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>(&rhs);
58717       return *this;
58718     }
58719 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58720     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58721     {
58722       pNext = pNext_;
58723       return *this;
58724     }
58725 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58726     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
58727     {
58728       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
58729       return *this;
58730     }
58731 
58732 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58733     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT
58734     {
58735       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
58736     }
58737 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58738     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
58739     {
58740       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
58741     }
58742 
58743 
58744 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58745     auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& ) const = default;
58746 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58747     bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
58748     {
58749       return ( sType == rhs.sType )
58750           && ( pNext == rhs.pNext )
58751           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
58752     }
58753 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures58754     bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
58755     {
58756       return !operator==( rhs );
58757     }
58758 #endif
58759 
58760 
58761 
58762   public:
58763     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
58764     void* pNext = {};
58765     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
58766 
58767   };
58768   static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" );
58769   static_assert( std::is_standard_layout<PhysicalDeviceShaderSubgroupExtendedTypesFeatures>::value, "struct wrapper is not a standard layout!" );
58770 
58771   template <>
58772   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
58773   {
58774     using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
58775   };
58776 
58777   struct PhysicalDeviceShadingRateImageFeaturesNV
58778   {
58779     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
58780 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58781     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {},
58782                                                                    VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {} ) VULKAN_HPP_NOEXCEPT
58783       : shadingRateImage( shadingRateImage_ )
58784       , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
58785     {}
58786 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58787     PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58788     {
58789       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) - offsetof( PhysicalDeviceShadingRateImageFeaturesNV, pNext ) );
58790       return *this;
58791     }
58792 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58793     PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58794     {
58795       *this = rhs;
58796     }
58797 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58798     PhysicalDeviceShadingRateImageFeaturesNV& operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58799     {
58800       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>(&rhs);
58801       return *this;
58802     }
58803 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58804     PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58805     {
58806       pNext = pNext_;
58807       return *this;
58808     }
58809 
setShadingRateImageVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58810     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
58811     {
58812       shadingRateImage = shadingRateImage_;
58813       return *this;
58814     }
58815 
setShadingRateCoarseSampleOrderVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58816     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
58817     {
58818       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
58819       return *this;
58820     }
58821 
58822 
operator VkPhysicalDeviceShadingRateImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58823     operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
58824     {
58825       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
58826     }
58827 
operator VkPhysicalDeviceShadingRateImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58828     operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
58829     {
58830       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
58831     }
58832 
58833 
58834 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58835     auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const& ) const = default;
58836 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58837     bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58838     {
58839       return ( sType == rhs.sType )
58840           && ( pNext == rhs.pNext )
58841           && ( shadingRateImage == rhs.shadingRateImage )
58842           && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
58843     }
58844 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV58845     bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58846     {
58847       return !operator==( rhs );
58848     }
58849 #endif
58850 
58851 
58852 
58853   public:
58854     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
58855     void* pNext = {};
58856     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
58857     VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
58858 
58859   };
58860   static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" );
58861   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
58862 
58863   template <>
58864   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
58865   {
58866     using Type = PhysicalDeviceShadingRateImageFeaturesNV;
58867   };
58868 
58869   struct PhysicalDeviceShadingRateImagePropertiesNV
58870   {
58871     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
58872 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58873     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {},
58874                                                                      uint32_t shadingRatePaletteSize_ = {},
58875                                                                      uint32_t shadingRateMaxCoarseSamples_ = {} ) VULKAN_HPP_NOEXCEPT
58876       : shadingRateTexelSize( shadingRateTexelSize_ )
58877       , shadingRatePaletteSize( shadingRatePaletteSize_ )
58878       , shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
58879     {}
58880 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58881     PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58882     {
58883       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) - offsetof( PhysicalDeviceShadingRateImagePropertiesNV, pNext ) );
58884       return *this;
58885     }
58886 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58887     PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58888     {
58889       *this = rhs;
58890     }
58891 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58892     PhysicalDeviceShadingRateImagePropertiesNV& operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58893     {
58894       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>(&rhs);
58895       return *this;
58896     }
58897 
58898 
operator VkPhysicalDeviceShadingRateImagePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58899     operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT
58900     {
58901       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
58902     }
58903 
operator VkPhysicalDeviceShadingRateImagePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58904     operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
58905     {
58906       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
58907     }
58908 
58909 
58910 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58911     auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const& ) const = default;
58912 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58913     bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58914     {
58915       return ( sType == rhs.sType )
58916           && ( pNext == rhs.pNext )
58917           && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
58918           && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
58919           && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
58920     }
58921 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV58922     bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58923     {
58924       return !operator==( rhs );
58925     }
58926 #endif
58927 
58928 
58929 
58930   public:
58931     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
58932     void* pNext = {};
58933     VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
58934     uint32_t shadingRatePaletteSize = {};
58935     uint32_t shadingRateMaxCoarseSamples = {};
58936 
58937   };
58938   static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" );
58939   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImagePropertiesNV>::value, "struct wrapper is not a standard layout!" );
58940 
58941   template <>
58942   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
58943   {
58944     using Type = PhysicalDeviceShadingRateImagePropertiesNV;
58945   };
58946 
58947   struct PhysicalDeviceSparseImageFormatInfo2
58948   {
58949     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
58950 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258951     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
58952                                                                VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
58953                                                                VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
58954                                                                VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
58955                                                                VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal ) VULKAN_HPP_NOEXCEPT
58956       : format( format_ )
58957       , type( type_ )
58958       , samples( samples_ )
58959       , usage( usage_ )
58960       , tiling( tiling_ )
58961     {}
58962 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258963     PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
58964     {
58965       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSparseImageFormatInfo2 ) - offsetof( PhysicalDeviceSparseImageFormatInfo2, pNext ) );
58966       return *this;
58967     }
58968 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258969     PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
58970     {
58971       *this = rhs;
58972     }
58973 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258974     PhysicalDeviceSparseImageFormatInfo2& operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
58975     {
58976       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>(&rhs);
58977       return *this;
58978     }
58979 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258980     PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58981     {
58982       pNext = pNext_;
58983       return *this;
58984     }
58985 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258986     PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
58987     {
58988       format = format_;
58989       return *this;
58990     }
58991 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258992     PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
58993     {
58994       type = type_;
58995       return *this;
58996     }
58997 
setSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo258998     PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
58999     {
59000       samples = samples_;
59001       return *this;
59002     }
59003 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo259004     PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
59005     {
59006       usage = usage_;
59007       return *this;
59008     }
59009 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo259010     PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
59011     {
59012       tiling = tiling_;
59013       return *this;
59014     }
59015 
59016 
operator VkPhysicalDeviceSparseImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo259017     operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
59018     {
59019       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
59020     }
59021 
operator VkPhysicalDeviceSparseImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo259022     operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
59023     {
59024       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
59025     }
59026 
59027 
59028 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59029     auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const& ) const = default;
59030 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo259031     bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
59032     {
59033       return ( sType == rhs.sType )
59034           && ( pNext == rhs.pNext )
59035           && ( format == rhs.format )
59036           && ( type == rhs.type )
59037           && ( samples == rhs.samples )
59038           && ( usage == rhs.usage )
59039           && ( tiling == rhs.tiling );
59040     }
59041 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo259042     bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
59043     {
59044       return !operator==( rhs );
59045     }
59046 #endif
59047 
59048 
59049 
59050   public:
59051     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
59052     const void* pNext = {};
59053     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
59054     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
59055     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
59056     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
59057     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
59058 
59059   };
59060   static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" );
59061   static_assert( std::is_standard_layout<PhysicalDeviceSparseImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
59062 
59063   template <>
59064   struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
59065   {
59066     using Type = PhysicalDeviceSparseImageFormatInfo2;
59067   };
59068 
59069   struct PhysicalDeviceSubgroupProperties
59070   {
59071     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
59072 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59073     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( uint32_t subgroupSize_ = {},
59074                                                            VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {},
59075                                                            VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {},
59076                                                            VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {} ) VULKAN_HPP_NOEXCEPT
59077       : subgroupSize( subgroupSize_ )
59078       , supportedStages( supportedStages_ )
59079       , supportedOperations( supportedOperations_ )
59080       , quadOperationsInAllStages( quadOperationsInAllStages_ )
59081     {}
59082 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59083     PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
59084     {
59085       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSubgroupProperties ) - offsetof( PhysicalDeviceSubgroupProperties, pNext ) );
59086       return *this;
59087     }
59088 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59089     PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
59090     {
59091       *this = rhs;
59092     }
59093 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59094     PhysicalDeviceSubgroupProperties& operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
59095     {
59096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>(&rhs);
59097       return *this;
59098     }
59099 
59100 
operator VkPhysicalDeviceSubgroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59101     operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT
59102     {
59103       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
59104     }
59105 
operator VkPhysicalDeviceSubgroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59106     operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
59107     {
59108       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
59109     }
59110 
59111 
59112 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59113     auto operator<=>( PhysicalDeviceSubgroupProperties const& ) const = default;
59114 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59115     bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
59116     {
59117       return ( sType == rhs.sType )
59118           && ( pNext == rhs.pNext )
59119           && ( subgroupSize == rhs.subgroupSize )
59120           && ( supportedStages == rhs.supportedStages )
59121           && ( supportedOperations == rhs.supportedOperations )
59122           && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
59123     }
59124 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties59125     bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
59126     {
59127       return !operator==( rhs );
59128     }
59129 #endif
59130 
59131 
59132 
59133   public:
59134     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
59135     void* pNext = {};
59136     uint32_t subgroupSize = {};
59137     VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
59138     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
59139     VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
59140 
59141   };
59142   static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" );
59143   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupProperties>::value, "struct wrapper is not a standard layout!" );
59144 
59145   template <>
59146   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
59147   {
59148     using Type = PhysicalDeviceSubgroupProperties;
59149   };
59150 
59151   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT
59152   {
59153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
59154 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59155     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {},
59156                                                                        VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {} ) VULKAN_HPP_NOEXCEPT
59157       : subgroupSizeControl( subgroupSizeControl_ )
59158       , computeFullSubgroups( computeFullSubgroups_ )
59159     {}
59160 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59161     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59162     {
59163       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) - offsetof( PhysicalDeviceSubgroupSizeControlFeaturesEXT, pNext ) );
59164       return *this;
59165     }
59166 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59167     PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59168     {
59169       *this = rhs;
59170     }
59171 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59172     PhysicalDeviceSubgroupSizeControlFeaturesEXT& operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59173     {
59174       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT const *>(&rhs);
59175       return *this;
59176     }
59177 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59178     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
59179     {
59180       pNext = pNext_;
59181       return *this;
59182     }
59183 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59184     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
59185     {
59186       subgroupSizeControl = subgroupSizeControl_;
59187       return *this;
59188     }
59189 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59190     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
59191     {
59192       computeFullSubgroups = computeFullSubgroups_;
59193       return *this;
59194     }
59195 
59196 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59197     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
59198     {
59199       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
59200     }
59201 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59202     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
59203     {
59204       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
59205     }
59206 
59207 
59208 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59209     auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& ) const = default;
59210 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59211     bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59212     {
59213       return ( sType == rhs.sType )
59214           && ( pNext == rhs.pNext )
59215           && ( subgroupSizeControl == rhs.subgroupSizeControl )
59216           && ( computeFullSubgroups == rhs.computeFullSubgroups );
59217     }
59218 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT59219     bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59220     {
59221       return !operator==( rhs );
59222     }
59223 #endif
59224 
59225 
59226 
59227   public:
59228     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
59229     void* pNext = {};
59230     VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
59231     VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
59232 
59233   };
59234   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" );
59235   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
59236 
59237   template <>
59238   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT>
59239   {
59240     using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT;
59241   };
59242 
59243   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT
59244   {
59245     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
59246 
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59247     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( uint32_t minSubgroupSize_ = {},
59248                                                                          uint32_t maxSubgroupSize_ = {},
59249                                                                          uint32_t maxComputeWorkgroupSubgroups_ = {},
59250                                                                          VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {} ) VULKAN_HPP_NOEXCEPT
59251       : minSubgroupSize( minSubgroupSize_ )
59252       , maxSubgroupSize( maxSubgroupSize_ )
59253       , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
59254       , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
59255     {}
59256 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59257     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59258     {
59259       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) - offsetof( PhysicalDeviceSubgroupSizeControlPropertiesEXT, pNext ) );
59260       return *this;
59261     }
59262 
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59263     PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59264     {
59265       *this = rhs;
59266     }
59267 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59268     PhysicalDeviceSubgroupSizeControlPropertiesEXT& operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59269     {
59270       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT const *>(&rhs);
59271       return *this;
59272     }
59273 
59274 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59275     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
59276     {
59277       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
59278     }
59279 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59280     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT
59281     {
59282       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
59283     }
59284 
59285 
59286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59287     auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& ) const = default;
59288 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59289     bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59290     {
59291       return ( sType == rhs.sType )
59292           && ( pNext == rhs.pNext )
59293           && ( minSubgroupSize == rhs.minSubgroupSize )
59294           && ( maxSubgroupSize == rhs.maxSubgroupSize )
59295           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
59296           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
59297     }
59298 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT59299     bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59300     {
59301       return !operator==( rhs );
59302     }
59303 #endif
59304 
59305 
59306 
59307   public:
59308     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
59309     void* pNext = {};
59310     uint32_t minSubgroupSize = {};
59311     uint32_t maxSubgroupSize = {};
59312     uint32_t maxComputeWorkgroupSubgroups = {};
59313     VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
59314 
59315   };
59316   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" );
59317   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
59318 
59319   template <>
59320   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT>
59321   {
59322     using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT;
59323   };
59324 
59325   struct PhysicalDeviceSurfaceInfo2KHR
59326   {
59327     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
59328 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59329     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {} ) VULKAN_HPP_NOEXCEPT
59330       : surface( surface_ )
59331     {}
59332 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59333     PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
59334     {
59335       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceSurfaceInfo2KHR ) - offsetof( PhysicalDeviceSurfaceInfo2KHR, pNext ) );
59336       return *this;
59337     }
59338 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59339     PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
59340     {
59341       *this = rhs;
59342     }
59343 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59344     PhysicalDeviceSurfaceInfo2KHR& operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
59345     {
59346       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>(&rhs);
59347       return *this;
59348     }
59349 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59350     PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59351     {
59352       pNext = pNext_;
59353       return *this;
59354     }
59355 
setSurfaceVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59356     PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
59357     {
59358       surface = surface_;
59359       return *this;
59360     }
59361 
59362 
operator VkPhysicalDeviceSurfaceInfo2KHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59363     operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
59364     {
59365       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
59366     }
59367 
operator VkPhysicalDeviceSurfaceInfo2KHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59368     operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
59369     {
59370       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
59371     }
59372 
59373 
59374 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59375     auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const& ) const = default;
59376 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59377     bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59378     {
59379       return ( sType == rhs.sType )
59380           && ( pNext == rhs.pNext )
59381           && ( surface == rhs.surface );
59382     }
59383 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR59384     bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59385     {
59386       return !operator==( rhs );
59387     }
59388 #endif
59389 
59390 
59391 
59392   public:
59393     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
59394     const void* pNext = {};
59395     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
59396 
59397   };
59398   static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" );
59399   static_assert( std::is_standard_layout<PhysicalDeviceSurfaceInfo2KHR>::value, "struct wrapper is not a standard layout!" );
59400 
59401   template <>
59402   struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
59403   {
59404     using Type = PhysicalDeviceSurfaceInfo2KHR;
59405   };
59406 
59407   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
59408   {
59409     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
59410 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59411     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {} ) VULKAN_HPP_NOEXCEPT
59412       : texelBufferAlignment( texelBufferAlignment_ )
59413     {}
59414 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59415     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59416     {
59417       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) - offsetof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT, pNext ) );
59418       return *this;
59419     }
59420 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59421     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59422     {
59423       *this = rhs;
59424     }
59425 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59426     PhysicalDeviceTexelBufferAlignmentFeaturesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59427     {
59428       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>(&rhs);
59429       return *this;
59430     }
59431 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59432     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
59433     {
59434       pNext = pNext_;
59435       return *this;
59436     }
59437 
setTexelBufferAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59438     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
59439     {
59440       texelBufferAlignment = texelBufferAlignment_;
59441       return *this;
59442     }
59443 
59444 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59445     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
59446     {
59447       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
59448     }
59449 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59450     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
59451     {
59452       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
59453     }
59454 
59455 
59456 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59457     auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& ) const = default;
59458 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59459     bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59460     {
59461       return ( sType == rhs.sType )
59462           && ( pNext == rhs.pNext )
59463           && ( texelBufferAlignment == rhs.texelBufferAlignment );
59464     }
59465 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT59466     bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59467     {
59468       return !operator==( rhs );
59469     }
59470 #endif
59471 
59472 
59473 
59474   public:
59475     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
59476     void* pNext = {};
59477     VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
59478 
59479   };
59480   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" );
59481   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
59482 
59483   template <>
59484   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
59485   {
59486     using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
59487   };
59488 
59489   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
59490   {
59491     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
59492 
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59493     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {},
59494                                                                           VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {},
59495                                                                           VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {},
59496                                                                           VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {} ) VULKAN_HPP_NOEXCEPT
59497       : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
59498       , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
59499       , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
59500       , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
59501     {}
59502 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59503     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59504     {
59505       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) - offsetof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT, pNext ) );
59506       return *this;
59507     }
59508 
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59509     PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59510     {
59511       *this = rhs;
59512     }
59513 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59514     PhysicalDeviceTexelBufferAlignmentPropertiesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59515     {
59516       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT const *>(&rhs);
59517       return *this;
59518     }
59519 
59520 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59521     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
59522     {
59523       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
59524     }
59525 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59526     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT
59527     {
59528       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
59529     }
59530 
59531 
59532 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59533     auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& ) const = default;
59534 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59535     bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59536     {
59537       return ( sType == rhs.sType )
59538           && ( pNext == rhs.pNext )
59539           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
59540           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
59541           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
59542           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
59543     }
59544 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT59545     bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59546     {
59547       return !operator==( rhs );
59548     }
59549 #endif
59550 
59551 
59552 
59553   public:
59554     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
59555     void* pNext = {};
59556     VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
59557     VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
59558     VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
59559     VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
59560 
59561   };
59562   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" );
59563   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
59564 
59565   template <>
59566   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT>
59567   {
59568     using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
59569   };
59570 
59571   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
59572   {
59573     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
59574 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59575     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {} ) VULKAN_HPP_NOEXCEPT
59576       : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
59577     {}
59578 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59579     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59580     {
59581       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) - offsetof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, pNext ) );
59582       return *this;
59583     }
59584 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59585     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59586     {
59587       *this = rhs;
59588     }
59589 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59590     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59591     {
59592       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const *>(&rhs);
59593       return *this;
59594     }
59595 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59596     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
59597     {
59598       pNext = pNext_;
59599       return *this;
59600     }
59601 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59602     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
59603     {
59604       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
59605       return *this;
59606     }
59607 
59608 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59609     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
59610     {
59611       return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
59612     }
59613 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59614     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT
59615     {
59616       return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
59617     }
59618 
59619 
59620 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59621     auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& ) const = default;
59622 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59623     bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59624     {
59625       return ( sType == rhs.sType )
59626           && ( pNext == rhs.pNext )
59627           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
59628     }
59629 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT59630     bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59631     {
59632       return !operator==( rhs );
59633     }
59634 #endif
59635 
59636 
59637 
59638   public:
59639     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
59640     void* pNext = {};
59641     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
59642 
59643   };
59644   static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" );
59645   static_assert( std::is_standard_layout<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
59646 
59647   template <>
59648   struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT>
59649   {
59650     using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
59651   };
59652 
59653   struct PhysicalDeviceTimelineSemaphoreFeatures
59654   {
59655     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
59656 
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59657     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {} ) VULKAN_HPP_NOEXCEPT
59658       : timelineSemaphore( timelineSemaphore_ )
59659     {}
59660 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59661     PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
59662     {
59663       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) - offsetof( PhysicalDeviceTimelineSemaphoreFeatures, pNext ) );
59664       return *this;
59665     }
59666 
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59667     PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
59668     {
59669       *this = rhs;
59670     }
59671 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59672     PhysicalDeviceTimelineSemaphoreFeatures& operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
59673     {
59674       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>(&rhs);
59675       return *this;
59676     }
59677 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59678     PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
59679     {
59680       pNext = pNext_;
59681       return *this;
59682     }
59683 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59684     PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
59685     {
59686       timelineSemaphore = timelineSemaphore_;
59687       return *this;
59688     }
59689 
59690 
operator VkPhysicalDeviceTimelineSemaphoreFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59691     operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT
59692     {
59693       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
59694     }
59695 
operator VkPhysicalDeviceTimelineSemaphoreFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59696     operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
59697     {
59698       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
59699     }
59700 
59701 
59702 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59703     auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const& ) const = default;
59704 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59705     bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
59706     {
59707       return ( sType == rhs.sType )
59708           && ( pNext == rhs.pNext )
59709           && ( timelineSemaphore == rhs.timelineSemaphore );
59710     }
59711 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures59712     bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
59713     {
59714       return !operator==( rhs );
59715     }
59716 #endif
59717 
59718 
59719 
59720   public:
59721     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
59722     void* pNext = {};
59723     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
59724 
59725   };
59726   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" );
59727   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreFeatures>::value, "struct wrapper is not a standard layout!" );
59728 
59729   template <>
59730   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
59731   {
59732     using Type = PhysicalDeviceTimelineSemaphoreFeatures;
59733   };
59734 
59735   struct PhysicalDeviceTimelineSemaphoreProperties
59736   {
59737     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
59738 
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59739     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( uint64_t maxTimelineSemaphoreValueDifference_ = {} ) VULKAN_HPP_NOEXCEPT
59740       : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
59741     {}
59742 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59743     PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
59744     {
59745       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceTimelineSemaphoreProperties ) - offsetof( PhysicalDeviceTimelineSemaphoreProperties, pNext ) );
59746       return *this;
59747     }
59748 
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59749     PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
59750     {
59751       *this = rhs;
59752     }
59753 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59754     PhysicalDeviceTimelineSemaphoreProperties& operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
59755     {
59756       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>(&rhs);
59757       return *this;
59758     }
59759 
59760 
operator VkPhysicalDeviceTimelineSemaphoreProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59761     operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
59762     {
59763       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
59764     }
59765 
operator VkPhysicalDeviceTimelineSemaphoreProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59766     operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
59767     {
59768       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
59769     }
59770 
59771 
59772 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59773     auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const& ) const = default;
59774 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59775     bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
59776     {
59777       return ( sType == rhs.sType )
59778           && ( pNext == rhs.pNext )
59779           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
59780     }
59781 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties59782     bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
59783     {
59784       return !operator==( rhs );
59785     }
59786 #endif
59787 
59788 
59789 
59790   public:
59791     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
59792     void* pNext = {};
59793     uint64_t maxTimelineSemaphoreValueDifference = {};
59794 
59795   };
59796   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" );
59797   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
59798 
59799   template <>
59800   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
59801   {
59802     using Type = PhysicalDeviceTimelineSemaphoreProperties;
59803   };
59804 
59805   struct PhysicalDeviceToolPropertiesEXT
59806   {
59807     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT;
59808 
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59809     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& name_ = {},
59810                                                              std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& version_ = {},
59811                                                              VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes_ = {},
59812                                                              std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {},
59813                                                              std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& layer_ = {} ) VULKAN_HPP_NOEXCEPT
59814       : name( name_ )
59815       , version( version_ )
59816       , purposes( purposes_ )
59817       , description( description_ )
59818       , layer( layer_ )
59819     {}
59820 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59821     PhysicalDeviceToolPropertiesEXT & operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59822     {
59823       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceToolPropertiesEXT ) - offsetof( PhysicalDeviceToolPropertiesEXT, pNext ) );
59824       return *this;
59825     }
59826 
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59827     PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59828     {
59829       *this = rhs;
59830     }
59831 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59832     PhysicalDeviceToolPropertiesEXT& operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59833     {
59834       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT const *>(&rhs);
59835       return *this;
59836     }
59837 
59838 
operator VkPhysicalDeviceToolPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59839     operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
59840     {
59841       return *reinterpret_cast<const VkPhysicalDeviceToolPropertiesEXT*>( this );
59842     }
59843 
operator VkPhysicalDeviceToolPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59844     operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT
59845     {
59846       return *reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( this );
59847     }
59848 
59849 
59850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59851     auto operator<=>( PhysicalDeviceToolPropertiesEXT const& ) const = default;
59852 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59853     bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59854     {
59855       return ( sType == rhs.sType )
59856           && ( pNext == rhs.pNext )
59857           && ( name == rhs.name )
59858           && ( version == rhs.version )
59859           && ( purposes == rhs.purposes )
59860           && ( description == rhs.description )
59861           && ( layer == rhs.layer );
59862     }
59863 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT59864     bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59865     {
59866       return !operator==( rhs );
59867     }
59868 #endif
59869 
59870 
59871 
59872   public:
59873     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT;
59874     void* pNext = {};
59875     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
59876     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
59877     VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {};
59878     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
59879     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
59880 
59881   };
59882   static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" );
59883   static_assert( std::is_standard_layout<PhysicalDeviceToolPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
59884 
59885   template <>
59886   struct CppType<StructureType, StructureType::ePhysicalDeviceToolPropertiesEXT>
59887   {
59888     using Type = PhysicalDeviceToolPropertiesEXT;
59889   };
59890 
59891   struct PhysicalDeviceTransformFeedbackFeaturesEXT
59892   {
59893     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
59894 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59895     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {},
59896                                                                      VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {} ) VULKAN_HPP_NOEXCEPT
59897       : transformFeedback( transformFeedback_ )
59898       , geometryStreams( geometryStreams_ )
59899     {}
59900 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59901     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59902     {
59903       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) - offsetof( PhysicalDeviceTransformFeedbackFeaturesEXT, pNext ) );
59904       return *this;
59905     }
59906 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59907     PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59908     {
59909       *this = rhs;
59910     }
59911 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59912     PhysicalDeviceTransformFeedbackFeaturesEXT& operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59913     {
59914       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>(&rhs);
59915       return *this;
59916     }
59917 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59918     PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
59919     {
59920       pNext = pNext_;
59921       return *this;
59922     }
59923 
setTransformFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59924     PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
59925     {
59926       transformFeedback = transformFeedback_;
59927       return *this;
59928     }
59929 
setGeometryStreamsVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59930     PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
59931     {
59932       geometryStreams = geometryStreams_;
59933       return *this;
59934     }
59935 
59936 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59937     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
59938     {
59939       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
59940     }
59941 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59942     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
59943     {
59944       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
59945     }
59946 
59947 
59948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59949     auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const& ) const = default;
59950 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59951     bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59952     {
59953       return ( sType == rhs.sType )
59954           && ( pNext == rhs.pNext )
59955           && ( transformFeedback == rhs.transformFeedback )
59956           && ( geometryStreams == rhs.geometryStreams );
59957     }
59958 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT59959     bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59960     {
59961       return !operator==( rhs );
59962     }
59963 #endif
59964 
59965 
59966 
59967   public:
59968     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
59969     void* pNext = {};
59970     VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
59971     VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
59972 
59973   };
59974   static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" );
59975   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
59976 
59977   template <>
59978   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
59979   {
59980     using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
59981   };
59982 
59983   struct PhysicalDeviceTransformFeedbackPropertiesEXT
59984   {
59985     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
59986 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT59987     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( uint32_t maxTransformFeedbackStreams_ = {},
59988                                                                        uint32_t maxTransformFeedbackBuffers_ = {},
59989                                                                        VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {},
59990                                                                        uint32_t maxTransformFeedbackStreamDataSize_ = {},
59991                                                                        uint32_t maxTransformFeedbackBufferDataSize_ = {},
59992                                                                        uint32_t maxTransformFeedbackBufferDataStride_ = {},
59993                                                                        VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {},
59994                                                                        VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {},
59995                                                                        VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {},
59996                                                                        VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {} ) VULKAN_HPP_NOEXCEPT
59997       : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ )
59998       , maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ )
59999       , maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ )
60000       , maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ )
60001       , maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ )
60002       , maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ )
60003       , transformFeedbackQueries( transformFeedbackQueries_ )
60004       , transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ )
60005       , transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ )
60006       , transformFeedbackDraw( transformFeedbackDraw_ )
60007     {}
60008 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT60009     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60010     {
60011       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) - offsetof( PhysicalDeviceTransformFeedbackPropertiesEXT, pNext ) );
60012       return *this;
60013     }
60014 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT60015     PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60016     {
60017       *this = rhs;
60018     }
60019 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT60020     PhysicalDeviceTransformFeedbackPropertiesEXT& operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60021     {
60022       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>(&rhs);
60023       return *this;
60024     }
60025 
60026 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT60027     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
60028     {
60029       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
60030     }
60031 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT60032     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
60033     {
60034       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
60035     }
60036 
60037 
60038 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60039     auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const& ) const = default;
60040 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT60041     bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60042     {
60043       return ( sType == rhs.sType )
60044           && ( pNext == rhs.pNext )
60045           && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
60046           && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
60047           && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
60048           && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
60049           && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
60050           && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
60051           && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
60052           && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
60053           && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
60054           && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
60055     }
60056 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT60057     bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60058     {
60059       return !operator==( rhs );
60060     }
60061 #endif
60062 
60063 
60064 
60065   public:
60066     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
60067     void* pNext = {};
60068     uint32_t maxTransformFeedbackStreams = {};
60069     uint32_t maxTransformFeedbackBuffers = {};
60070     VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
60071     uint32_t maxTransformFeedbackStreamDataSize = {};
60072     uint32_t maxTransformFeedbackBufferDataSize = {};
60073     uint32_t maxTransformFeedbackBufferDataStride = {};
60074     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
60075     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
60076     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
60077     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
60078 
60079   };
60080   static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" );
60081   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
60082 
60083   template <>
60084   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
60085   {
60086     using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
60087   };
60088 
60089   struct PhysicalDeviceUniformBufferStandardLayoutFeatures
60090   {
60091     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
60092 
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60093     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {} ) VULKAN_HPP_NOEXCEPT
60094       : uniformBufferStandardLayout( uniformBufferStandardLayout_ )
60095     {}
60096 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60097     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60098     {
60099       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) - offsetof( PhysicalDeviceUniformBufferStandardLayoutFeatures, pNext ) );
60100       return *this;
60101     }
60102 
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60103     PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60104     {
60105       *this = rhs;
60106     }
60107 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60108     PhysicalDeviceUniformBufferStandardLayoutFeatures& operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60109     {
60110       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>(&rhs);
60111       return *this;
60112     }
60113 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60114     PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
60115     {
60116       pNext = pNext_;
60117       return *this;
60118     }
60119 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60120     PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
60121     {
60122       uniformBufferStandardLayout = uniformBufferStandardLayout_;
60123       return *this;
60124     }
60125 
60126 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60127     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
60128     {
60129       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
60130     }
60131 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60132     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
60133     {
60134       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
60135     }
60136 
60137 
60138 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60139     auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const& ) const = default;
60140 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60141     bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
60142     {
60143       return ( sType == rhs.sType )
60144           && ( pNext == rhs.pNext )
60145           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
60146     }
60147 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures60148     bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
60149     {
60150       return !operator==( rhs );
60151     }
60152 #endif
60153 
60154 
60155 
60156   public:
60157     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
60158     void* pNext = {};
60159     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
60160 
60161   };
60162   static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" );
60163   static_assert( std::is_standard_layout<PhysicalDeviceUniformBufferStandardLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
60164 
60165   template <>
60166   struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
60167   {
60168     using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
60169   };
60170 
60171   struct PhysicalDeviceVariablePointersFeatures
60172   {
60173     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
60174 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60175     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {},
60176                                                                  VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {} ) VULKAN_HPP_NOEXCEPT
60177       : variablePointersStorageBuffer( variablePointersStorageBuffer_ )
60178       , variablePointers( variablePointers_ )
60179     {}
60180 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60181     PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60182     {
60183       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVariablePointersFeatures ) - offsetof( PhysicalDeviceVariablePointersFeatures, pNext ) );
60184       return *this;
60185     }
60186 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60187     PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60188     {
60189       *this = rhs;
60190     }
60191 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60192     PhysicalDeviceVariablePointersFeatures& operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60193     {
60194       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>(&rhs);
60195       return *this;
60196     }
60197 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60198     PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
60199     {
60200       pNext = pNext_;
60201       return *this;
60202     }
60203 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60204     PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
60205     {
60206       variablePointersStorageBuffer = variablePointersStorageBuffer_;
60207       return *this;
60208     }
60209 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60210     PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
60211     {
60212       variablePointers = variablePointers_;
60213       return *this;
60214     }
60215 
60216 
operator VkPhysicalDeviceVariablePointersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60217     operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT
60218     {
60219       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
60220     }
60221 
operator VkPhysicalDeviceVariablePointersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60222     operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
60223     {
60224       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
60225     }
60226 
60227 
60228 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60229     auto operator<=>( PhysicalDeviceVariablePointersFeatures const& ) const = default;
60230 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60231     bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
60232     {
60233       return ( sType == rhs.sType )
60234           && ( pNext == rhs.pNext )
60235           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
60236           && ( variablePointers == rhs.variablePointers );
60237     }
60238 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures60239     bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
60240     {
60241       return !operator==( rhs );
60242     }
60243 #endif
60244 
60245 
60246 
60247   public:
60248     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
60249     void* pNext = {};
60250     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
60251     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
60252 
60253   };
60254   static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" );
60255   static_assert( std::is_standard_layout<PhysicalDeviceVariablePointersFeatures>::value, "struct wrapper is not a standard layout!" );
60256 
60257   template <>
60258   struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
60259   {
60260     using Type = PhysicalDeviceVariablePointersFeatures;
60261   };
60262 
60263   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
60264   {
60265     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
60266 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60267     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {},
60268                                                                           VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {} ) VULKAN_HPP_NOEXCEPT
60269       : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ )
60270       , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
60271     {}
60272 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60273     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60274     {
60275       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) - offsetof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT, pNext ) );
60276       return *this;
60277     }
60278 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60279     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60280     {
60281       *this = rhs;
60282     }
60283 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60284     PhysicalDeviceVertexAttributeDivisorFeaturesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60285     {
60286       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>(&rhs);
60287       return *this;
60288     }
60289 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60290     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
60291     {
60292       pNext = pNext_;
60293       return *this;
60294     }
60295 
setVertexAttributeInstanceRateDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60296     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
60297     {
60298       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
60299       return *this;
60300     }
60301 
setVertexAttributeInstanceRateZeroDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60302     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
60303     {
60304       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
60305       return *this;
60306     }
60307 
60308 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60309     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
60310     {
60311       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
60312     }
60313 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60314     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
60315     {
60316       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
60317     }
60318 
60319 
60320 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60321     auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& ) const = default;
60322 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60323     bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60324     {
60325       return ( sType == rhs.sType )
60326           && ( pNext == rhs.pNext )
60327           && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
60328           && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
60329     }
60330 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT60331     bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60332     {
60333       return !operator==( rhs );
60334     }
60335 #endif
60336 
60337 
60338 
60339   public:
60340     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
60341     void* pNext = {};
60342     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
60343     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
60344 
60345   };
60346   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" );
60347   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
60348 
60349   template <>
60350   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
60351   {
60352     using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
60353   };
60354 
60355   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
60356   {
60357     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
60358 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60359     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( uint32_t maxVertexAttribDivisor_ = {} ) VULKAN_HPP_NOEXCEPT
60360       : maxVertexAttribDivisor( maxVertexAttribDivisor_ )
60361     {}
60362 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60363     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60364     {
60365       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) - offsetof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext ) );
60366       return *this;
60367     }
60368 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60369     PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60370     {
60371       *this = rhs;
60372     }
60373 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60374     PhysicalDeviceVertexAttributeDivisorPropertiesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60375     {
60376       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>(&rhs);
60377       return *this;
60378     }
60379 
60380 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60381     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
60382     {
60383       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
60384     }
60385 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60386     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
60387     {
60388       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
60389     }
60390 
60391 
60392 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60393     auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& ) const = default;
60394 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60395     bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60396     {
60397       return ( sType == rhs.sType )
60398           && ( pNext == rhs.pNext )
60399           && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
60400     }
60401 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT60402     bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60403     {
60404       return !operator==( rhs );
60405     }
60406 #endif
60407 
60408 
60409 
60410   public:
60411     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
60412     void* pNext = {};
60413     uint32_t maxVertexAttribDivisor = {};
60414 
60415   };
60416   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
60417   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
60418 
60419   template <>
60420   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
60421   {
60422     using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
60423   };
60424 
60425   struct PhysicalDeviceVulkan11Features
60426   {
60427     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
60428 
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60429     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {},
60430                                                          VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {},
60431                                                          VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {},
60432                                                          VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {},
60433                                                          VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {},
60434                                                          VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {},
60435                                                          VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {},
60436                                                          VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {},
60437                                                          VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {},
60438                                                          VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {},
60439                                                          VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {},
60440                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {} ) VULKAN_HPP_NOEXCEPT
60441       : storageBuffer16BitAccess( storageBuffer16BitAccess_ )
60442       , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
60443       , storagePushConstant16( storagePushConstant16_ )
60444       , storageInputOutput16( storageInputOutput16_ )
60445       , multiview( multiview_ )
60446       , multiviewGeometryShader( multiviewGeometryShader_ )
60447       , multiviewTessellationShader( multiviewTessellationShader_ )
60448       , variablePointersStorageBuffer( variablePointersStorageBuffer_ )
60449       , variablePointers( variablePointers_ )
60450       , protectedMemory( protectedMemory_ )
60451       , samplerYcbcrConversion( samplerYcbcrConversion_ )
60452       , shaderDrawParameters( shaderDrawParameters_ )
60453     {}
60454 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60455     PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
60456     {
60457       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVulkan11Features ) - offsetof( PhysicalDeviceVulkan11Features, pNext ) );
60458       return *this;
60459     }
60460 
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60461     PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
60462     {
60463       *this = rhs;
60464     }
60465 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60466     PhysicalDeviceVulkan11Features& operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
60467     {
60468       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>(&rhs);
60469       return *this;
60470     }
60471 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60472     PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
60473     {
60474       pNext = pNext_;
60475       return *this;
60476     }
60477 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60478     PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
60479     {
60480       storageBuffer16BitAccess = storageBuffer16BitAccess_;
60481       return *this;
60482     }
60483 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60484     PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
60485     {
60486       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
60487       return *this;
60488     }
60489 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60490     PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
60491     {
60492       storagePushConstant16 = storagePushConstant16_;
60493       return *this;
60494     }
60495 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60496     PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
60497     {
60498       storageInputOutput16 = storageInputOutput16_;
60499       return *this;
60500     }
60501 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60502     PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
60503     {
60504       multiview = multiview_;
60505       return *this;
60506     }
60507 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60508     PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
60509     {
60510       multiviewGeometryShader = multiviewGeometryShader_;
60511       return *this;
60512     }
60513 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60514     PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
60515     {
60516       multiviewTessellationShader = multiviewTessellationShader_;
60517       return *this;
60518     }
60519 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60520     PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
60521     {
60522       variablePointersStorageBuffer = variablePointersStorageBuffer_;
60523       return *this;
60524     }
60525 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60526     PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
60527     {
60528       variablePointers = variablePointers_;
60529       return *this;
60530     }
60531 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60532     PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
60533     {
60534       protectedMemory = protectedMemory_;
60535       return *this;
60536     }
60537 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60538     PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
60539     {
60540       samplerYcbcrConversion = samplerYcbcrConversion_;
60541       return *this;
60542     }
60543 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60544     PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
60545     {
60546       shaderDrawParameters = shaderDrawParameters_;
60547       return *this;
60548     }
60549 
60550 
operator VkPhysicalDeviceVulkan11Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60551     operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT
60552     {
60553       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>( this );
60554     }
60555 
operator VkPhysicalDeviceVulkan11Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60556     operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
60557     {
60558       return *reinterpret_cast<VkPhysicalDeviceVulkan11Features*>( this );
60559     }
60560 
60561 
60562 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60563     auto operator<=>( PhysicalDeviceVulkan11Features const& ) const = default;
60564 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60565     bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
60566     {
60567       return ( sType == rhs.sType )
60568           && ( pNext == rhs.pNext )
60569           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
60570           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
60571           && ( storagePushConstant16 == rhs.storagePushConstant16 )
60572           && ( storageInputOutput16 == rhs.storageInputOutput16 )
60573           && ( multiview == rhs.multiview )
60574           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
60575           && ( multiviewTessellationShader == rhs.multiviewTessellationShader )
60576           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
60577           && ( variablePointers == rhs.variablePointers )
60578           && ( protectedMemory == rhs.protectedMemory )
60579           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion )
60580           && ( shaderDrawParameters == rhs.shaderDrawParameters );
60581     }
60582 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features60583     bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
60584     {
60585       return !operator==( rhs );
60586     }
60587 #endif
60588 
60589 
60590 
60591   public:
60592     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
60593     void* pNext = {};
60594     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
60595     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
60596     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
60597     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
60598     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
60599     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
60600     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
60601     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
60602     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
60603     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
60604     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
60605     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
60606 
60607   };
60608   static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" );
60609   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Features>::value, "struct wrapper is not a standard layout!" );
60610 
60611   template <>
60612   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
60613   {
60614     using Type = PhysicalDeviceVulkan11Features;
60615   };
60616 
60617   struct PhysicalDeviceVulkan11Properties
60618   {
60619     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
60620 
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60621     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( std::array<uint8_t,VK_UUID_SIZE> const& deviceUUID_ = {},
60622                                                               std::array<uint8_t,VK_UUID_SIZE> const& driverUUID_ = {},
60623                                                               std::array<uint8_t,VK_LUID_SIZE> const& deviceLUID_ = {},
60624                                                               uint32_t deviceNodeMask_ = {},
60625                                                               VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {},
60626                                                               uint32_t subgroupSize_ = {},
60627                                                               VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {},
60628                                                               VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {},
60629                                                               VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {},
60630                                                               VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes,
60631                                                               uint32_t maxMultiviewViewCount_ = {},
60632                                                               uint32_t maxMultiviewInstanceIndex_ = {},
60633                                                               VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {},
60634                                                               uint32_t maxPerSetDescriptors_ = {},
60635                                                               VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {} ) VULKAN_HPP_NOEXCEPT
60636       : deviceUUID( deviceUUID_ )
60637       , driverUUID( driverUUID_ )
60638       , deviceLUID( deviceLUID_ )
60639       , deviceNodeMask( deviceNodeMask_ )
60640       , deviceLUIDValid( deviceLUIDValid_ )
60641       , subgroupSize( subgroupSize_ )
60642       , subgroupSupportedStages( subgroupSupportedStages_ )
60643       , subgroupSupportedOperations( subgroupSupportedOperations_ )
60644       , subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ )
60645       , pointClippingBehavior( pointClippingBehavior_ )
60646       , maxMultiviewViewCount( maxMultiviewViewCount_ )
60647       , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
60648       , protectedNoFault( protectedNoFault_ )
60649       , maxPerSetDescriptors( maxPerSetDescriptors_ )
60650       , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
60651     {}
60652 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60653     PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
60654     {
60655       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVulkan11Properties ) - offsetof( PhysicalDeviceVulkan11Properties, pNext ) );
60656       return *this;
60657     }
60658 
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60659     PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
60660     {
60661       *this = rhs;
60662     }
60663 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60664     PhysicalDeviceVulkan11Properties& operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
60665     {
60666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>(&rhs);
60667       return *this;
60668     }
60669 
60670 
operator VkPhysicalDeviceVulkan11Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60671     operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT
60672     {
60673       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>( this );
60674     }
60675 
operator VkPhysicalDeviceVulkan11Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60676     operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
60677     {
60678       return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>( this );
60679     }
60680 
60681 
60682 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60683     auto operator<=>( PhysicalDeviceVulkan11Properties const& ) const = default;
60684 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60685     bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
60686     {
60687       return ( sType == rhs.sType )
60688           && ( pNext == rhs.pNext )
60689           && ( deviceUUID == rhs.deviceUUID )
60690           && ( driverUUID == rhs.driverUUID )
60691           && ( deviceLUID == rhs.deviceLUID )
60692           && ( deviceNodeMask == rhs.deviceNodeMask )
60693           && ( deviceLUIDValid == rhs.deviceLUIDValid )
60694           && ( subgroupSize == rhs.subgroupSize )
60695           && ( subgroupSupportedStages == rhs.subgroupSupportedStages )
60696           && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations )
60697           && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages )
60698           && ( pointClippingBehavior == rhs.pointClippingBehavior )
60699           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
60700           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex )
60701           && ( protectedNoFault == rhs.protectedNoFault )
60702           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
60703           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
60704     }
60705 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties60706     bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
60707     {
60708       return !operator==( rhs );
60709     }
60710 #endif
60711 
60712 
60713 
60714   public:
60715     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
60716     void* pNext = {};
60717     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
60718     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
60719     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
60720     uint32_t deviceNodeMask = {};
60721     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
60722     uint32_t subgroupSize = {};
60723     VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
60724     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
60725     VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
60726     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
60727     uint32_t maxMultiviewViewCount = {};
60728     uint32_t maxMultiviewInstanceIndex = {};
60729     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
60730     uint32_t maxPerSetDescriptors = {};
60731     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
60732 
60733   };
60734   static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" );
60735   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Properties>::value, "struct wrapper is not a standard layout!" );
60736 
60737   template <>
60738   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
60739   {
60740     using Type = PhysicalDeviceVulkan11Properties;
60741   };
60742 
60743   struct PhysicalDeviceVulkan12Features
60744   {
60745     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
60746 
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60747     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {},
60748                                                          VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {},
60749                                                          VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {},
60750                                                          VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {},
60751                                                          VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {},
60752                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {},
60753                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {},
60754                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {},
60755                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {},
60756                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {},
60757                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {},
60758                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {},
60759                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {},
60760                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {},
60761                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {},
60762                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {},
60763                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {},
60764                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {},
60765                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {},
60766                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {},
60767                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {},
60768                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {},
60769                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {},
60770                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {},
60771                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {},
60772                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {},
60773                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {},
60774                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {},
60775                                                          VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {},
60776                                                          VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {},
60777                                                          VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {},
60778                                                          VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {},
60779                                                          VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {},
60780                                                          VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {},
60781                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {},
60782                                                          VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {},
60783                                                          VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {},
60784                                                          VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {},
60785                                                          VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
60786                                                          VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
60787                                                          VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
60788                                                          VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {},
60789                                                          VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {},
60790                                                          VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {},
60791                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {},
60792                                                          VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {},
60793                                                          VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {} ) VULKAN_HPP_NOEXCEPT
60794       : samplerMirrorClampToEdge( samplerMirrorClampToEdge_ )
60795       , drawIndirectCount( drawIndirectCount_ )
60796       , storageBuffer8BitAccess( storageBuffer8BitAccess_ )
60797       , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
60798       , storagePushConstant8( storagePushConstant8_ )
60799       , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
60800       , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
60801       , shaderFloat16( shaderFloat16_ )
60802       , shaderInt8( shaderInt8_ )
60803       , descriptorIndexing( descriptorIndexing_ )
60804       , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
60805       , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
60806       , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
60807       , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
60808       , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
60809       , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
60810       , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
60811       , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
60812       , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
60813       , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
60814       , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
60815       , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
60816       , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
60817       , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
60818       , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
60819       , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
60820       , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
60821       , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
60822       , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
60823       , runtimeDescriptorArray( runtimeDescriptorArray_ )
60824       , samplerFilterMinmax( samplerFilterMinmax_ )
60825       , scalarBlockLayout( scalarBlockLayout_ )
60826       , imagelessFramebuffer( imagelessFramebuffer_ )
60827       , uniformBufferStandardLayout( uniformBufferStandardLayout_ )
60828       , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
60829       , separateDepthStencilLayouts( separateDepthStencilLayouts_ )
60830       , hostQueryReset( hostQueryReset_ )
60831       , timelineSemaphore( timelineSemaphore_ )
60832       , bufferDeviceAddress( bufferDeviceAddress_ )
60833       , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
60834       , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
60835       , vulkanMemoryModel( vulkanMemoryModel_ )
60836       , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
60837       , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
60838       , shaderOutputViewportIndex( shaderOutputViewportIndex_ )
60839       , shaderOutputLayer( shaderOutputLayer_ )
60840       , subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ )
60841     {}
60842 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60843     PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
60844     {
60845       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVulkan12Features ) - offsetof( PhysicalDeviceVulkan12Features, pNext ) );
60846       return *this;
60847     }
60848 
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60849     PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
60850     {
60851       *this = rhs;
60852     }
60853 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60854     PhysicalDeviceVulkan12Features& operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
60855     {
60856       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>(&rhs);
60857       return *this;
60858     }
60859 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60860     PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
60861     {
60862       pNext = pNext_;
60863       return *this;
60864     }
60865 
setSamplerMirrorClampToEdgeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60866     PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
60867     {
60868       samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
60869       return *this;
60870     }
60871 
setDrawIndirectCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60872     PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
60873     {
60874       drawIndirectCount = drawIndirectCount_;
60875       return *this;
60876     }
60877 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60878     PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
60879     {
60880       storageBuffer8BitAccess = storageBuffer8BitAccess_;
60881       return *this;
60882     }
60883 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60884     PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
60885     {
60886       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
60887       return *this;
60888     }
60889 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60890     PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
60891     {
60892       storagePushConstant8 = storagePushConstant8_;
60893       return *this;
60894     }
60895 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60896     PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
60897     {
60898       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
60899       return *this;
60900     }
60901 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60902     PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
60903     {
60904       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
60905       return *this;
60906     }
60907 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60908     PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
60909     {
60910       shaderFloat16 = shaderFloat16_;
60911       return *this;
60912     }
60913 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60914     PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
60915     {
60916       shaderInt8 = shaderInt8_;
60917       return *this;
60918     }
60919 
setDescriptorIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60920     PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
60921     {
60922       descriptorIndexing = descriptorIndexing_;
60923       return *this;
60924     }
60925 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60926     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
60927     {
60928       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
60929       return *this;
60930     }
60931 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60932     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
60933     {
60934       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
60935       return *this;
60936     }
60937 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60938     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
60939     {
60940       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
60941       return *this;
60942     }
60943 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60944     PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
60945     {
60946       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
60947       return *this;
60948     }
60949 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60950     PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
60951     {
60952       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
60953       return *this;
60954     }
60955 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60956     PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
60957     {
60958       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
60959       return *this;
60960     }
60961 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60962     PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
60963     {
60964       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
60965       return *this;
60966     }
60967 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60968     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
60969     {
60970       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
60971       return *this;
60972     }
60973 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60974     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
60975     {
60976       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
60977       return *this;
60978     }
60979 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60980     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
60981     {
60982       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
60983       return *this;
60984     }
60985 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60986     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
60987     {
60988       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
60989       return *this;
60990     }
60991 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60992     PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
60993     {
60994       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
60995       return *this;
60996     }
60997 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features60998     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
60999     {
61000       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
61001       return *this;
61002     }
61003 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61004     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
61005     {
61006       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
61007       return *this;
61008     }
61009 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61010     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
61011     {
61012       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
61013       return *this;
61014     }
61015 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61016     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
61017     {
61018       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
61019       return *this;
61020     }
61021 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61022     PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
61023     {
61024       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
61025       return *this;
61026     }
61027 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61028     PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
61029     {
61030       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
61031       return *this;
61032     }
61033 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61034     PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
61035     {
61036       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
61037       return *this;
61038     }
61039 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61040     PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
61041     {
61042       runtimeDescriptorArray = runtimeDescriptorArray_;
61043       return *this;
61044     }
61045 
setSamplerFilterMinmaxVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61046     PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
61047     {
61048       samplerFilterMinmax = samplerFilterMinmax_;
61049       return *this;
61050     }
61051 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61052     PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
61053     {
61054       scalarBlockLayout = scalarBlockLayout_;
61055       return *this;
61056     }
61057 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61058     PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
61059     {
61060       imagelessFramebuffer = imagelessFramebuffer_;
61061       return *this;
61062     }
61063 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61064     PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
61065     {
61066       uniformBufferStandardLayout = uniformBufferStandardLayout_;
61067       return *this;
61068     }
61069 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61070     PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
61071     {
61072       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
61073       return *this;
61074     }
61075 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61076     PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
61077     {
61078       separateDepthStencilLayouts = separateDepthStencilLayouts_;
61079       return *this;
61080     }
61081 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61082     PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
61083     {
61084       hostQueryReset = hostQueryReset_;
61085       return *this;
61086     }
61087 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61088     PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
61089     {
61090       timelineSemaphore = timelineSemaphore_;
61091       return *this;
61092     }
61093 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61094     PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
61095     {
61096       bufferDeviceAddress = bufferDeviceAddress_;
61097       return *this;
61098     }
61099 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61100     PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
61101     {
61102       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
61103       return *this;
61104     }
61105 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61106     PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
61107     {
61108       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
61109       return *this;
61110     }
61111 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61112     PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
61113     {
61114       vulkanMemoryModel = vulkanMemoryModel_;
61115       return *this;
61116     }
61117 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61118     PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
61119     {
61120       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
61121       return *this;
61122     }
61123 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61124     PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
61125     {
61126       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
61127       return *this;
61128     }
61129 
setShaderOutputViewportIndexVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61130     PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
61131     {
61132       shaderOutputViewportIndex = shaderOutputViewportIndex_;
61133       return *this;
61134     }
61135 
setShaderOutputLayerVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61136     PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
61137     {
61138       shaderOutputLayer = shaderOutputLayer_;
61139       return *this;
61140     }
61141 
setSubgroupBroadcastDynamicIdVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61142     PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
61143     {
61144       subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
61145       return *this;
61146     }
61147 
61148 
operator VkPhysicalDeviceVulkan12Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61149     operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT
61150     {
61151       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>( this );
61152     }
61153 
operator VkPhysicalDeviceVulkan12Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61154     operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
61155     {
61156       return *reinterpret_cast<VkPhysicalDeviceVulkan12Features*>( this );
61157     }
61158 
61159 
61160 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61161     auto operator<=>( PhysicalDeviceVulkan12Features const& ) const = default;
61162 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61163     bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
61164     {
61165       return ( sType == rhs.sType )
61166           && ( pNext == rhs.pNext )
61167           && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge )
61168           && ( drawIndirectCount == rhs.drawIndirectCount )
61169           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
61170           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
61171           && ( storagePushConstant8 == rhs.storagePushConstant8 )
61172           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
61173           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics )
61174           && ( shaderFloat16 == rhs.shaderFloat16 )
61175           && ( shaderInt8 == rhs.shaderInt8 )
61176           && ( descriptorIndexing == rhs.descriptorIndexing )
61177           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
61178           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
61179           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
61180           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
61181           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
61182           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
61183           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
61184           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
61185           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
61186           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
61187           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
61188           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
61189           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
61190           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
61191           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
61192           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
61193           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
61194           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
61195           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
61196           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray )
61197           && ( samplerFilterMinmax == rhs.samplerFilterMinmax )
61198           && ( scalarBlockLayout == rhs.scalarBlockLayout )
61199           && ( imagelessFramebuffer == rhs.imagelessFramebuffer )
61200           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout )
61201           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes )
61202           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts )
61203           && ( hostQueryReset == rhs.hostQueryReset )
61204           && ( timelineSemaphore == rhs.timelineSemaphore )
61205           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
61206           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
61207           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice )
61208           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
61209           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
61210           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains )
61211           && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex )
61212           && ( shaderOutputLayer == rhs.shaderOutputLayer )
61213           && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
61214     }
61215 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features61216     bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
61217     {
61218       return !operator==( rhs );
61219     }
61220 #endif
61221 
61222 
61223 
61224   public:
61225     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
61226     void* pNext = {};
61227     VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
61228     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
61229     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
61230     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
61231     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
61232     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
61233     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
61234     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
61235     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
61236     VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
61237     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
61238     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
61239     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
61240     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
61241     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
61242     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
61243     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
61244     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
61245     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
61246     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
61247     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
61248     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
61249     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
61250     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
61251     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
61252     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
61253     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
61254     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
61255     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
61256     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
61257     VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
61258     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
61259     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
61260     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
61261     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
61262     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
61263     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
61264     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
61265     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
61266     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
61267     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
61268     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
61269     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
61270     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
61271     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
61272     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
61273     VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
61274 
61275   };
61276   static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" );
61277   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Features>::value, "struct wrapper is not a standard layout!" );
61278 
61279   template <>
61280   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
61281   {
61282     using Type = PhysicalDeviceVulkan12Features;
61283   };
61284 
61285   struct PhysicalDeviceVulkan12Properties
61286   {
61287     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
61288 
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61289     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary,
61290                                                               std::array<char,VK_MAX_DRIVER_NAME_SIZE> const& driverName_ = {},
61291                                                               std::array<char,VK_MAX_DRIVER_INFO_SIZE> const& driverInfo_ = {},
61292                                                               VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {},
61293                                                               VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
61294                                                               VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
61295                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {},
61296                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {},
61297                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {},
61298                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {},
61299                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {},
61300                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {},
61301                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {},
61302                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {},
61303                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {},
61304                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {},
61305                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {},
61306                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {},
61307                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {},
61308                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {},
61309                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {},
61310                                                               uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {},
61311                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {},
61312                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {},
61313                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {},
61314                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {},
61315                                                               VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {},
61316                                                               VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {},
61317                                                               VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {},
61318                                                               uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {},
61319                                                               uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {},
61320                                                               uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {},
61321                                                               uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {},
61322                                                               uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {},
61323                                                               uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {},
61324                                                               uint32_t maxPerStageUpdateAfterBindResources_ = {},
61325                                                               uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {},
61326                                                               uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {},
61327                                                               uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {},
61328                                                               uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {},
61329                                                               uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {},
61330                                                               uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {},
61331                                                               uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {},
61332                                                               uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {},
61333                                                               VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {},
61334                                                               VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {},
61335                                                               VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {},
61336                                                               VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {},
61337                                                               VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {},
61338                                                               VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {},
61339                                                               uint64_t maxTimelineSemaphoreValueDifference_ = {},
61340                                                               VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {} ) VULKAN_HPP_NOEXCEPT
61341       : driverID( driverID_ )
61342       , driverName( driverName_ )
61343       , driverInfo( driverInfo_ )
61344       , conformanceVersion( conformanceVersion_ )
61345       , denormBehaviorIndependence( denormBehaviorIndependence_ )
61346       , roundingModeIndependence( roundingModeIndependence_ )
61347       , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
61348       , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
61349       , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
61350       , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
61351       , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
61352       , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
61353       , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
61354       , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
61355       , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
61356       , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
61357       , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
61358       , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
61359       , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
61360       , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
61361       , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
61362       , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
61363       , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
61364       , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
61365       , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
61366       , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
61367       , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
61368       , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
61369       , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
61370       , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
61371       , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
61372       , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
61373       , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
61374       , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
61375       , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
61376       , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
61377       , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
61378       , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
61379       , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
61380       , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
61381       , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
61382       , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
61383       , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
61384       , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
61385       , supportedDepthResolveModes( supportedDepthResolveModes_ )
61386       , supportedStencilResolveModes( supportedStencilResolveModes_ )
61387       , independentResolveNone( independentResolveNone_ )
61388       , independentResolve( independentResolve_ )
61389       , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
61390       , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
61391       , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
61392       , framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ )
61393     {}
61394 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61395     PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
61396     {
61397       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVulkan12Properties ) - offsetof( PhysicalDeviceVulkan12Properties, pNext ) );
61398       return *this;
61399     }
61400 
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61401     PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
61402     {
61403       *this = rhs;
61404     }
61405 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61406     PhysicalDeviceVulkan12Properties& operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
61407     {
61408       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>(&rhs);
61409       return *this;
61410     }
61411 
61412 
operator VkPhysicalDeviceVulkan12Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61413     operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT
61414     {
61415       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>( this );
61416     }
61417 
operator VkPhysicalDeviceVulkan12Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61418     operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
61419     {
61420       return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>( this );
61421     }
61422 
61423 
61424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61425     auto operator<=>( PhysicalDeviceVulkan12Properties const& ) const = default;
61426 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61427     bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
61428     {
61429       return ( sType == rhs.sType )
61430           && ( pNext == rhs.pNext )
61431           && ( driverID == rhs.driverID )
61432           && ( driverName == rhs.driverName )
61433           && ( driverInfo == rhs.driverInfo )
61434           && ( conformanceVersion == rhs.conformanceVersion )
61435           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
61436           && ( roundingModeIndependence == rhs.roundingModeIndependence )
61437           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
61438           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
61439           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
61440           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
61441           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
61442           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
61443           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
61444           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
61445           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
61446           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
61447           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
61448           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
61449           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
61450           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
61451           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 )
61452           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
61453           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
61454           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
61455           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
61456           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
61457           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
61458           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
61459           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
61460           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
61461           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
61462           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
61463           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
61464           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
61465           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
61466           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
61467           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
61468           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
61469           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
61470           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
61471           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
61472           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
61473           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
61474           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments )
61475           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
61476           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
61477           && ( independentResolveNone == rhs.independentResolveNone )
61478           && ( independentResolve == rhs.independentResolve )
61479           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
61480           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping )
61481           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference )
61482           && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
61483     }
61484 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties61485     bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
61486     {
61487       return !operator==( rhs );
61488     }
61489 #endif
61490 
61491 
61492 
61493   public:
61494     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
61495     void* pNext = {};
61496     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
61497     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
61498     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
61499     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
61500     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
61501     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
61502     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
61503     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
61504     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
61505     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
61506     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
61507     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
61508     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
61509     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
61510     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
61511     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
61512     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
61513     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
61514     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
61515     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
61516     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
61517     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
61518     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
61519     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
61520     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
61521     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
61522     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
61523     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
61524     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
61525     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
61526     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
61527     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
61528     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
61529     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
61530     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
61531     uint32_t maxPerStageUpdateAfterBindResources = {};
61532     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
61533     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
61534     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
61535     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
61536     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
61537     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
61538     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
61539     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
61540     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
61541     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
61542     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
61543     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
61544     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
61545     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
61546     uint64_t maxTimelineSemaphoreValueDifference = {};
61547     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
61548 
61549   };
61550   static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" );
61551   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Properties>::value, "struct wrapper is not a standard layout!" );
61552 
61553   template <>
61554   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
61555   {
61556     using Type = PhysicalDeviceVulkan12Properties;
61557   };
61558 
61559   struct PhysicalDeviceVulkanMemoryModelFeatures
61560   {
61561     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
61562 
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61563     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {},
61564                                                                   VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {},
61565                                                                   VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {} ) VULKAN_HPP_NOEXCEPT
61566       : vulkanMemoryModel( vulkanMemoryModel_ )
61567       , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
61568       , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
61569     {}
61570 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61571     PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61572     {
61573       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) - offsetof( PhysicalDeviceVulkanMemoryModelFeatures, pNext ) );
61574       return *this;
61575     }
61576 
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61577     PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61578     {
61579       *this = rhs;
61580     }
61581 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61582     PhysicalDeviceVulkanMemoryModelFeatures& operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61583     {
61584       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>(&rhs);
61585       return *this;
61586     }
61587 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61588     PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61589     {
61590       pNext = pNext_;
61591       return *this;
61592     }
61593 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61594     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
61595     {
61596       vulkanMemoryModel = vulkanMemoryModel_;
61597       return *this;
61598     }
61599 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61600     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
61601     {
61602       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
61603       return *this;
61604     }
61605 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61606     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
61607     {
61608       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
61609       return *this;
61610     }
61611 
61612 
operator VkPhysicalDeviceVulkanMemoryModelFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61613     operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT
61614     {
61615       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
61616     }
61617 
operator VkPhysicalDeviceVulkanMemoryModelFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61618     operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
61619     {
61620       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
61621     }
61622 
61623 
61624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61625     auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const& ) const = default;
61626 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61627     bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61628     {
61629       return ( sType == rhs.sType )
61630           && ( pNext == rhs.pNext )
61631           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
61632           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
61633           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
61634     }
61635 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures61636     bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61637     {
61638       return !operator==( rhs );
61639     }
61640 #endif
61641 
61642 
61643 
61644   public:
61645     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
61646     void* pNext = {};
61647     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
61648     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
61649     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
61650 
61651   };
61652   static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" );
61653   static_assert( std::is_standard_layout<PhysicalDeviceVulkanMemoryModelFeatures>::value, "struct wrapper is not a standard layout!" );
61654 
61655   template <>
61656   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
61657   {
61658     using Type = PhysicalDeviceVulkanMemoryModelFeatures;
61659   };
61660 
61661   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
61662   {
61663     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
61664 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61665     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {} ) VULKAN_HPP_NOEXCEPT
61666       : ycbcrImageArrays( ycbcrImageArrays_ )
61667     {}
61668 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61669     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61670     {
61671       memcpy( &pNext, &rhs.pNext, sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) - offsetof( PhysicalDeviceYcbcrImageArraysFeaturesEXT, pNext ) );
61672       return *this;
61673     }
61674 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61675     PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61676     {
61677       *this = rhs;
61678     }
61679 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61680     PhysicalDeviceYcbcrImageArraysFeaturesEXT& operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61681     {
61682       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>(&rhs);
61683       return *this;
61684     }
61685 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61686     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61687     {
61688       pNext = pNext_;
61689       return *this;
61690     }
61691 
setYcbcrImageArraysVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61692     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
61693     {
61694       ycbcrImageArrays = ycbcrImageArrays_;
61695       return *this;
61696     }
61697 
61698 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61699     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61700     {
61701       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
61702     }
61703 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61704     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61705     {
61706       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
61707     }
61708 
61709 
61710 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61711     auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& ) const = default;
61712 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61713     bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61714     {
61715       return ( sType == rhs.sType )
61716           && ( pNext == rhs.pNext )
61717           && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
61718     }
61719 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT61720     bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61721     {
61722       return !operator==( rhs );
61723     }
61724 #endif
61725 
61726 
61727 
61728   public:
61729     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
61730     void* pNext = {};
61731     VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
61732 
61733   };
61734   static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" );
61735   static_assert( std::is_standard_layout<PhysicalDeviceYcbcrImageArraysFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61736 
61737   template <>
61738   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
61739   {
61740     using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
61741   };
61742 
61743   struct PipelineCacheCreateInfo
61744   {
61745     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
61746 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61747     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {},
61748                                                   size_t initialDataSize_ = {},
61749                                                   const void* pInitialData_ = {} ) VULKAN_HPP_NOEXCEPT
61750       : flags( flags_ )
61751       , initialDataSize( initialDataSize_ )
61752       , pInitialData( pInitialData_ )
61753     {}
61754 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61755     PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61756     {
61757       memcpy( &pNext, &rhs.pNext, sizeof( PipelineCacheCreateInfo ) - offsetof( PipelineCacheCreateInfo, pNext ) );
61758       return *this;
61759     }
61760 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61761     PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61762     {
61763       *this = rhs;
61764     }
61765 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61766     PipelineCacheCreateInfo& operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61767     {
61768       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>(&rhs);
61769       return *this;
61770     }
61771 
setPNextVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61772     PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61773     {
61774       pNext = pNext_;
61775       return *this;
61776     }
61777 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61778     PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
61779     {
61780       flags = flags_;
61781       return *this;
61782     }
61783 
setInitialDataSizeVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61784     PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
61785     {
61786       initialDataSize = initialDataSize_;
61787       return *this;
61788     }
61789 
setPInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61790     PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
61791     {
61792       pInitialData = pInitialData_;
61793       return *this;
61794     }
61795 
61796 
operator VkPipelineCacheCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61797     operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT
61798     {
61799       return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
61800     }
61801 
operator VkPipelineCacheCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61802     operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
61803     {
61804       return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
61805     }
61806 
61807 
61808 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61809     auto operator<=>( PipelineCacheCreateInfo const& ) const = default;
61810 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61811     bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61812     {
61813       return ( sType == rhs.sType )
61814           && ( pNext == rhs.pNext )
61815           && ( flags == rhs.flags )
61816           && ( initialDataSize == rhs.initialDataSize )
61817           && ( pInitialData == rhs.pInitialData );
61818     }
61819 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo61820     bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61821     {
61822       return !operator==( rhs );
61823     }
61824 #endif
61825 
61826 
61827 
61828   public:
61829     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
61830     const void* pNext = {};
61831     VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
61832     size_t initialDataSize = {};
61833     const void* pInitialData = {};
61834 
61835   };
61836   static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" );
61837   static_assert( std::is_standard_layout<PipelineCacheCreateInfo>::value, "struct wrapper is not a standard layout!" );
61838 
61839   template <>
61840   struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
61841   {
61842     using Type = PipelineCacheCreateInfo;
61843   };
61844 
61845   struct PipelineColorBlendAdvancedStateCreateInfoEXT
61846   {
61847     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
61848 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61849     VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {},
61850                                                                        VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {},
61851                                                                        VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated ) VULKAN_HPP_NOEXCEPT
61852       : srcPremultiplied( srcPremultiplied_ )
61853       , dstPremultiplied( dstPremultiplied_ )
61854       , blendOverlap( blendOverlap_ )
61855     {}
61856 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61857     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61858     {
61859       memcpy( &pNext, &rhs.pNext, sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) - offsetof( PipelineColorBlendAdvancedStateCreateInfoEXT, pNext ) );
61860       return *this;
61861     }
61862 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61863     PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61864     {
61865       *this = rhs;
61866     }
61867 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61868     PipelineColorBlendAdvancedStateCreateInfoEXT& operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61869     {
61870       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>(&rhs);
61871       return *this;
61872     }
61873 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61874     PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61875     {
61876       pNext = pNext_;
61877       return *this;
61878     }
61879 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61880     PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
61881     {
61882       srcPremultiplied = srcPremultiplied_;
61883       return *this;
61884     }
61885 
setDstPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61886     PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
61887     {
61888       dstPremultiplied = dstPremultiplied_;
61889       return *this;
61890     }
61891 
setBlendOverlapVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61892     PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
61893     {
61894       blendOverlap = blendOverlap_;
61895       return *this;
61896     }
61897 
61898 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61899     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
61900     {
61901       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
61902     }
61903 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61904     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
61905     {
61906       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
61907     }
61908 
61909 
61910 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61911     auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const& ) const = default;
61912 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61913     bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61914     {
61915       return ( sType == rhs.sType )
61916           && ( pNext == rhs.pNext )
61917           && ( srcPremultiplied == rhs.srcPremultiplied )
61918           && ( dstPremultiplied == rhs.dstPremultiplied )
61919           && ( blendOverlap == rhs.blendOverlap );
61920     }
61921 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT61922     bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61923     {
61924       return !operator==( rhs );
61925     }
61926 #endif
61927 
61928 
61929 
61930   public:
61931     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
61932     const void* pNext = {};
61933     VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
61934     VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
61935     VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
61936 
61937   };
61938   static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" );
61939   static_assert( std::is_standard_layout<PipelineColorBlendAdvancedStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
61940 
61941   template <>
61942   struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
61943   {
61944     using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
61945   };
61946 
61947   struct PipelineCompilerControlCreateInfoAMD
61948   {
61949     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
61950 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61951     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {} ) VULKAN_HPP_NOEXCEPT
61952       : compilerControlFlags( compilerControlFlags_ )
61953     {}
61954 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61955     PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
61956     {
61957       memcpy( &pNext, &rhs.pNext, sizeof( PipelineCompilerControlCreateInfoAMD ) - offsetof( PipelineCompilerControlCreateInfoAMD, pNext ) );
61958       return *this;
61959     }
61960 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61961     PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
61962     {
61963       *this = rhs;
61964     }
61965 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61966     PipelineCompilerControlCreateInfoAMD& operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
61967     {
61968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>(&rhs);
61969       return *this;
61970     }
61971 
setPNextVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61972     PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61973     {
61974       pNext = pNext_;
61975       return *this;
61976     }
61977 
setCompilerControlFlagsVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61978     PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
61979     {
61980       compilerControlFlags = compilerControlFlags_;
61981       return *this;
61982     }
61983 
61984 
operator VkPipelineCompilerControlCreateInfoAMD const&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61985     operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
61986     {
61987       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>( this );
61988     }
61989 
operator VkPipelineCompilerControlCreateInfoAMD&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61990     operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
61991     {
61992       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>( this );
61993     }
61994 
61995 
61996 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61997     auto operator<=>( PipelineCompilerControlCreateInfoAMD const& ) const = default;
61998 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD61999     bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62000     {
62001       return ( sType == rhs.sType )
62002           && ( pNext == rhs.pNext )
62003           && ( compilerControlFlags == rhs.compilerControlFlags );
62004     }
62005 
operator !=VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD62006     bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62007     {
62008       return !operator==( rhs );
62009     }
62010 #endif
62011 
62012 
62013 
62014   public:
62015     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
62016     const void* pNext = {};
62017     VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
62018 
62019   };
62020   static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" );
62021   static_assert( std::is_standard_layout<PipelineCompilerControlCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
62022 
62023   template <>
62024   struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
62025   {
62026     using Type = PipelineCompilerControlCreateInfoAMD;
62027   };
62028 
62029   struct PipelineCoverageModulationStateCreateInfoNV
62030   {
62031     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
62032 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62033     VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {},
62034                                                                       VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone,
62035                                                                       VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {},
62036                                                                       uint32_t coverageModulationTableCount_ = {},
62037                                                                       const float* pCoverageModulationTable_ = {} ) VULKAN_HPP_NOEXCEPT
62038       : flags( flags_ )
62039       , coverageModulationMode( coverageModulationMode_ )
62040       , coverageModulationTableEnable( coverageModulationTableEnable_ )
62041       , coverageModulationTableCount( coverageModulationTableCount_ )
62042       , pCoverageModulationTable( pCoverageModulationTable_ )
62043     {}
62044 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62045     PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62046     {
62047       memcpy( &pNext, &rhs.pNext, sizeof( PipelineCoverageModulationStateCreateInfoNV ) - offsetof( PipelineCoverageModulationStateCreateInfoNV, pNext ) );
62048       return *this;
62049     }
62050 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62051     PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62052     {
62053       *this = rhs;
62054     }
62055 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62056     PipelineCoverageModulationStateCreateInfoNV& operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62057     {
62058       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>(&rhs);
62059       return *this;
62060     }
62061 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62062     PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
62063     {
62064       pNext = pNext_;
62065       return *this;
62066     }
62067 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62068     PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
62069     {
62070       flags = flags_;
62071       return *this;
62072     }
62073 
setCoverageModulationModeVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62074     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
62075     {
62076       coverageModulationMode = coverageModulationMode_;
62077       return *this;
62078     }
62079 
setCoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62080     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
62081     {
62082       coverageModulationTableEnable = coverageModulationTableEnable_;
62083       return *this;
62084     }
62085 
setCoverageModulationTableCountVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62086     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
62087     {
62088       coverageModulationTableCount = coverageModulationTableCount_;
62089       return *this;
62090     }
62091 
setPCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62092     PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
62093     {
62094       pCoverageModulationTable = pCoverageModulationTable_;
62095       return *this;
62096     }
62097 
62098 
operator VkPipelineCoverageModulationStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62099     operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
62100     {
62101       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
62102     }
62103 
operator VkPipelineCoverageModulationStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62104     operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
62105     {
62106       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
62107     }
62108 
62109 
62110 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62111     auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const& ) const = default;
62112 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62113     bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62114     {
62115       return ( sType == rhs.sType )
62116           && ( pNext == rhs.pNext )
62117           && ( flags == rhs.flags )
62118           && ( coverageModulationMode == rhs.coverageModulationMode )
62119           && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
62120           && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
62121           && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
62122     }
62123 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV62124     bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62125     {
62126       return !operator==( rhs );
62127     }
62128 #endif
62129 
62130 
62131 
62132   public:
62133     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
62134     const void* pNext = {};
62135     VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
62136     VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
62137     VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
62138     uint32_t coverageModulationTableCount = {};
62139     const float* pCoverageModulationTable = {};
62140 
62141   };
62142   static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" );
62143   static_assert( std::is_standard_layout<PipelineCoverageModulationStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
62144 
62145   template <>
62146   struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
62147   {
62148     using Type = PipelineCoverageModulationStateCreateInfoNV;
62149   };
62150 
62151   struct PipelineCoverageReductionStateCreateInfoNV
62152   {
62153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
62154 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62155     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {},
62156                                                                      VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge ) VULKAN_HPP_NOEXCEPT
62157       : flags( flags_ )
62158       , coverageReductionMode( coverageReductionMode_ )
62159     {}
62160 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62161     PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62162     {
62163       memcpy( &pNext, &rhs.pNext, sizeof( PipelineCoverageReductionStateCreateInfoNV ) - offsetof( PipelineCoverageReductionStateCreateInfoNV, pNext ) );
62164       return *this;
62165     }
62166 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62167     PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62168     {
62169       *this = rhs;
62170     }
62171 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62172     PipelineCoverageReductionStateCreateInfoNV& operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62173     {
62174       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>(&rhs);
62175       return *this;
62176     }
62177 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62178     PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
62179     {
62180       pNext = pNext_;
62181       return *this;
62182     }
62183 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62184     PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
62185     {
62186       flags = flags_;
62187       return *this;
62188     }
62189 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62190     PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
62191     {
62192       coverageReductionMode = coverageReductionMode_;
62193       return *this;
62194     }
62195 
62196 
operator VkPipelineCoverageReductionStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62197     operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
62198     {
62199       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
62200     }
62201 
operator VkPipelineCoverageReductionStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62202     operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
62203     {
62204       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
62205     }
62206 
62207 
62208 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62209     auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const& ) const = default;
62210 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62211     bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62212     {
62213       return ( sType == rhs.sType )
62214           && ( pNext == rhs.pNext )
62215           && ( flags == rhs.flags )
62216           && ( coverageReductionMode == rhs.coverageReductionMode );
62217     }
62218 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV62219     bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62220     {
62221       return !operator==( rhs );
62222     }
62223 #endif
62224 
62225 
62226 
62227   public:
62228     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
62229     const void* pNext = {};
62230     VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
62231     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
62232 
62233   };
62234   static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" );
62235   static_assert( std::is_standard_layout<PipelineCoverageReductionStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
62236 
62237   template <>
62238   struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
62239   {
62240     using Type = PipelineCoverageReductionStateCreateInfoNV;
62241   };
62242 
62243   struct PipelineCoverageToColorStateCreateInfoNV
62244   {
62245     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
62246 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62247     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {},
62248                                                                    VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {},
62249                                                                    uint32_t coverageToColorLocation_ = {} ) VULKAN_HPP_NOEXCEPT
62250       : flags( flags_ )
62251       , coverageToColorEnable( coverageToColorEnable_ )
62252       , coverageToColorLocation( coverageToColorLocation_ )
62253     {}
62254 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62255     PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62256     {
62257       memcpy( &pNext, &rhs.pNext, sizeof( PipelineCoverageToColorStateCreateInfoNV ) - offsetof( PipelineCoverageToColorStateCreateInfoNV, pNext ) );
62258       return *this;
62259     }
62260 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62261     PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62262     {
62263       *this = rhs;
62264     }
62265 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62266     PipelineCoverageToColorStateCreateInfoNV& operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
62267     {
62268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>(&rhs);
62269       return *this;
62270     }
62271 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62272     PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
62273     {
62274       pNext = pNext_;
62275       return *this;
62276     }
62277 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62278     PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
62279     {
62280       flags = flags_;
62281       return *this;
62282     }
62283 
setCoverageToColorEnableVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62284     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
62285     {
62286       coverageToColorEnable = coverageToColorEnable_;
62287       return *this;
62288     }
62289 
setCoverageToColorLocationVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62290     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
62291     {
62292       coverageToColorLocation = coverageToColorLocation_;
62293       return *this;
62294     }
62295 
62296 
operator VkPipelineCoverageToColorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62297     operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
62298     {
62299       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
62300     }
62301 
operator VkPipelineCoverageToColorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62302     operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
62303     {
62304       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
62305     }
62306 
62307 
62308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62309     auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const& ) const = default;
62310 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62311     bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62312     {
62313       return ( sType == rhs.sType )
62314           && ( pNext == rhs.pNext )
62315           && ( flags == rhs.flags )
62316           && ( coverageToColorEnable == rhs.coverageToColorEnable )
62317           && ( coverageToColorLocation == rhs.coverageToColorLocation );
62318     }
62319 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV62320     bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62321     {
62322       return !operator==( rhs );
62323     }
62324 #endif
62325 
62326 
62327 
62328   public:
62329     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
62330     const void* pNext = {};
62331     VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
62332     VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
62333     uint32_t coverageToColorLocation = {};
62334 
62335   };
62336   static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" );
62337   static_assert( std::is_standard_layout<PipelineCoverageToColorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
62338 
62339   template <>
62340   struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
62341   {
62342     using Type = PipelineCoverageToColorStateCreateInfoNV;
62343   };
62344 
62345   struct PipelineCreationFeedbackEXT
62346   {
62347 
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT62348     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {},
62349                                                       uint64_t duration_ = {} ) VULKAN_HPP_NOEXCEPT
62350       : flags( flags_ )
62351       , duration( duration_ )
62352     {}
62353 
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT62354     PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62355     {
62356       *this = rhs;
62357     }
62358 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT62359     PipelineCreationFeedbackEXT& operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62360     {
62361       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT const *>(&rhs);
62362       return *this;
62363     }
62364 
62365 
operator VkPipelineCreationFeedbackEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT62366     operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT
62367     {
62368       return *reinterpret_cast<const VkPipelineCreationFeedbackEXT*>( this );
62369     }
62370 
operator VkPipelineCreationFeedbackEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT62371     operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT
62372     {
62373       return *reinterpret_cast<VkPipelineCreationFeedbackEXT*>( this );
62374     }
62375 
62376 
62377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62378     auto operator<=>( PipelineCreationFeedbackEXT const& ) const = default;
62379 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT62380     bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62381     {
62382       return ( flags == rhs.flags )
62383           && ( duration == rhs.duration );
62384     }
62385 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT62386     bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62387     {
62388       return !operator==( rhs );
62389     }
62390 #endif
62391 
62392 
62393 
62394   public:
62395     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {};
62396     uint64_t duration = {};
62397 
62398   };
62399   static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" );
62400   static_assert( std::is_standard_layout<PipelineCreationFeedbackEXT>::value, "struct wrapper is not a standard layout!" );
62401 
62402   struct PipelineCreationFeedbackCreateInfoEXT
62403   {
62404     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
62405 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62406     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {},
62407                                                                 uint32_t pipelineStageCreationFeedbackCount_ = {},
62408                                                                 VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {} ) VULKAN_HPP_NOEXCEPT
62409       : pPipelineCreationFeedback( pPipelineCreationFeedback_ )
62410       , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ )
62411       , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
62412     {}
62413 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62414     PipelineCreationFeedbackCreateInfoEXT & operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62415     {
62416       memcpy( &pNext, &rhs.pNext, sizeof( PipelineCreationFeedbackCreateInfoEXT ) - offsetof( PipelineCreationFeedbackCreateInfoEXT, pNext ) );
62417       return *this;
62418     }
62419 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62420     PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62421     {
62422       *this = rhs;
62423     }
62424 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62425     PipelineCreationFeedbackCreateInfoEXT& operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62426     {
62427       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT const *>(&rhs);
62428       return *this;
62429     }
62430 
setPNextVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62431     PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
62432     {
62433       pNext = pNext_;
62434       return *this;
62435     }
62436 
setPPipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62437     PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
62438     {
62439       pPipelineCreationFeedback = pPipelineCreationFeedback_;
62440       return *this;
62441     }
62442 
setPipelineStageCreationFeedbackCountVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62443     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
62444     {
62445       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
62446       return *this;
62447     }
62448 
setPPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62449     PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
62450     {
62451       pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
62452       return *this;
62453     }
62454 
62455 
operator VkPipelineCreationFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62456     operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
62457     {
62458       return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>( this );
62459     }
62460 
operator VkPipelineCreationFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62461     operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
62462     {
62463       return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>( this );
62464     }
62465 
62466 
62467 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62468     auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const& ) const = default;
62469 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62470     bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62471     {
62472       return ( sType == rhs.sType )
62473           && ( pNext == rhs.pNext )
62474           && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
62475           && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
62476           && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
62477     }
62478 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT62479     bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62480     {
62481       return !operator==( rhs );
62482     }
62483 #endif
62484 
62485 
62486 
62487   public:
62488     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
62489     const void* pNext = {};
62490     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {};
62491     uint32_t pipelineStageCreationFeedbackCount = {};
62492     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {};
62493 
62494   };
62495   static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" );
62496   static_assert( std::is_standard_layout<PipelineCreationFeedbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
62497 
62498   template <>
62499   struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfoEXT>
62500   {
62501     using Type = PipelineCreationFeedbackCreateInfoEXT;
62502   };
62503 
62504   struct PipelineDiscardRectangleStateCreateInfoEXT
62505   {
62506     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
62507 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62508     VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {},
62509                                                                      VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive,
62510                                                                      uint32_t discardRectangleCount_ = {},
62511                                                                      const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ = {} ) VULKAN_HPP_NOEXCEPT
62512       : flags( flags_ )
62513       , discardRectangleMode( discardRectangleMode_ )
62514       , discardRectangleCount( discardRectangleCount_ )
62515       , pDiscardRectangles( pDiscardRectangles_ )
62516     {}
62517 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62518     PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62519     {
62520       memcpy( &pNext, &rhs.pNext, sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) - offsetof( PipelineDiscardRectangleStateCreateInfoEXT, pNext ) );
62521       return *this;
62522     }
62523 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62524     PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62525     {
62526       *this = rhs;
62527     }
62528 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62529     PipelineDiscardRectangleStateCreateInfoEXT& operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62530     {
62531       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>(&rhs);
62532       return *this;
62533     }
62534 
setPNextVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62535     PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
62536     {
62537       pNext = pNext_;
62538       return *this;
62539     }
62540 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62541     PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
62542     {
62543       flags = flags_;
62544       return *this;
62545     }
62546 
setDiscardRectangleModeVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62547     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
62548     {
62549       discardRectangleMode = discardRectangleMode_;
62550       return *this;
62551     }
62552 
setDiscardRectangleCountVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62553     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
62554     {
62555       discardRectangleCount = discardRectangleCount_;
62556       return *this;
62557     }
62558 
setPDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62559     PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
62560     {
62561       pDiscardRectangles = pDiscardRectangles_;
62562       return *this;
62563     }
62564 
62565 
operator VkPipelineDiscardRectangleStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62566     operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
62567     {
62568       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
62569     }
62570 
operator VkPipelineDiscardRectangleStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62571     operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
62572     {
62573       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
62574     }
62575 
62576 
62577 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62578     auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const& ) const = default;
62579 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62580     bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62581     {
62582       return ( sType == rhs.sType )
62583           && ( pNext == rhs.pNext )
62584           && ( flags == rhs.flags )
62585           && ( discardRectangleMode == rhs.discardRectangleMode )
62586           && ( discardRectangleCount == rhs.discardRectangleCount )
62587           && ( pDiscardRectangles == rhs.pDiscardRectangles );
62588     }
62589 
operator !=VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT62590     bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62591     {
62592       return !operator==( rhs );
62593     }
62594 #endif
62595 
62596 
62597 
62598   public:
62599     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
62600     const void* pNext = {};
62601     VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
62602     VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
62603     uint32_t discardRectangleCount = {};
62604     const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {};
62605 
62606   };
62607   static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" );
62608   static_assert( std::is_standard_layout<PipelineDiscardRectangleStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
62609 
62610   template <>
62611   struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
62612   {
62613     using Type = PipelineDiscardRectangleStateCreateInfoEXT;
62614   };
62615 
62616   struct PipelineExecutableInfoKHR
62617   {
62618     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
62619 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62620     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
62621                                                     uint32_t executableIndex_ = {} ) VULKAN_HPP_NOEXCEPT
62622       : pipeline( pipeline_ )
62623       , executableIndex( executableIndex_ )
62624     {}
62625 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62626     PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62627     {
62628       memcpy( &pNext, &rhs.pNext, sizeof( PipelineExecutableInfoKHR ) - offsetof( PipelineExecutableInfoKHR, pNext ) );
62629       return *this;
62630     }
62631 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62632     PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62633     {
62634       *this = rhs;
62635     }
62636 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62637     PipelineExecutableInfoKHR& operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62638     {
62639       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>(&rhs);
62640       return *this;
62641     }
62642 
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62643     PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
62644     {
62645       pNext = pNext_;
62646       return *this;
62647     }
62648 
setPipelineVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62649     PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
62650     {
62651       pipeline = pipeline_;
62652       return *this;
62653     }
62654 
setExecutableIndexVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62655     PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
62656     {
62657       executableIndex = executableIndex_;
62658       return *this;
62659     }
62660 
62661 
operator VkPipelineExecutableInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62662     operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT
62663     {
62664       return *reinterpret_cast<const VkPipelineExecutableInfoKHR*>( this );
62665     }
62666 
operator VkPipelineExecutableInfoKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62667     operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
62668     {
62669       return *reinterpret_cast<VkPipelineExecutableInfoKHR*>( this );
62670     }
62671 
62672 
62673 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62674     auto operator<=>( PipelineExecutableInfoKHR const& ) const = default;
62675 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62676     bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62677     {
62678       return ( sType == rhs.sType )
62679           && ( pNext == rhs.pNext )
62680           && ( pipeline == rhs.pipeline )
62681           && ( executableIndex == rhs.executableIndex );
62682     }
62683 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR62684     bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62685     {
62686       return !operator==( rhs );
62687     }
62688 #endif
62689 
62690 
62691 
62692   public:
62693     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
62694     const void* pNext = {};
62695     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
62696     uint32_t executableIndex = {};
62697 
62698   };
62699   static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" );
62700   static_assert( std::is_standard_layout<PipelineExecutableInfoKHR>::value, "struct wrapper is not a standard layout!" );
62701 
62702   template <>
62703   struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
62704   {
62705     using Type = PipelineExecutableInfoKHR;
62706   };
62707 
62708   struct PipelineExecutableInternalRepresentationKHR
62709   {
62710     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
62711 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62712     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {},
62713                                                                          std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {},
62714                                                                          VULKAN_HPP_NAMESPACE::Bool32 isText_ = {},
62715                                                                          size_t dataSize_ = {},
62716                                                                          void* pData_ = {} ) VULKAN_HPP_NOEXCEPT
62717       : name( name_ )
62718       , description( description_ )
62719       , isText( isText_ )
62720       , dataSize( dataSize_ )
62721       , pData( pData_ )
62722     {}
62723 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62724     PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62725     {
62726       memcpy( &pNext, &rhs.pNext, sizeof( PipelineExecutableInternalRepresentationKHR ) - offsetof( PipelineExecutableInternalRepresentationKHR, pNext ) );
62727       return *this;
62728     }
62729 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62730     PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62731     {
62732       *this = rhs;
62733     }
62734 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62735     PipelineExecutableInternalRepresentationKHR& operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62736     {
62737       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>(&rhs);
62738       return *this;
62739     }
62740 
62741 
operator VkPipelineExecutableInternalRepresentationKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62742     operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT
62743     {
62744       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR*>( this );
62745     }
62746 
operator VkPipelineExecutableInternalRepresentationKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62747     operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
62748     {
62749       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( this );
62750     }
62751 
62752 
62753 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62754     auto operator<=>( PipelineExecutableInternalRepresentationKHR const& ) const = default;
62755 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62756     bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62757     {
62758       return ( sType == rhs.sType )
62759           && ( pNext == rhs.pNext )
62760           && ( name == rhs.name )
62761           && ( description == rhs.description )
62762           && ( isText == rhs.isText )
62763           && ( dataSize == rhs.dataSize )
62764           && ( pData == rhs.pData );
62765     }
62766 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR62767     bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62768     {
62769       return !operator==( rhs );
62770     }
62771 #endif
62772 
62773 
62774 
62775   public:
62776     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
62777     void* pNext = {};
62778     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
62779     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
62780     VULKAN_HPP_NAMESPACE::Bool32 isText = {};
62781     size_t dataSize = {};
62782     void* pData = {};
62783 
62784   };
62785   static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" );
62786   static_assert( std::is_standard_layout<PipelineExecutableInternalRepresentationKHR>::value, "struct wrapper is not a standard layout!" );
62787 
62788   template <>
62789   struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
62790   {
62791     using Type = PipelineExecutableInternalRepresentationKHR;
62792   };
62793 
62794   struct PipelineExecutablePropertiesKHR
62795   {
62796     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
62797 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62798     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {},
62799                                                              std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {},
62800                                                              std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {},
62801                                                              uint32_t subgroupSize_ = {} ) VULKAN_HPP_NOEXCEPT
62802       : stages( stages_ )
62803       , name( name_ )
62804       , description( description_ )
62805       , subgroupSize( subgroupSize_ )
62806     {}
62807 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62808     PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62809     {
62810       memcpy( &pNext, &rhs.pNext, sizeof( PipelineExecutablePropertiesKHR ) - offsetof( PipelineExecutablePropertiesKHR, pNext ) );
62811       return *this;
62812     }
62813 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62814     PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62815     {
62816       *this = rhs;
62817     }
62818 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62819     PipelineExecutablePropertiesKHR& operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62820     {
62821       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>(&rhs);
62822       return *this;
62823     }
62824 
62825 
operator VkPipelineExecutablePropertiesKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62826     operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
62827     {
62828       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR*>( this );
62829     }
62830 
operator VkPipelineExecutablePropertiesKHR&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62831     operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
62832     {
62833       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( this );
62834     }
62835 
62836 
62837 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62838     auto operator<=>( PipelineExecutablePropertiesKHR const& ) const = default;
62839 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62840     bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62841     {
62842       return ( sType == rhs.sType )
62843           && ( pNext == rhs.pNext )
62844           && ( stages == rhs.stages )
62845           && ( name == rhs.name )
62846           && ( description == rhs.description )
62847           && ( subgroupSize == rhs.subgroupSize );
62848     }
62849 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR62850     bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62851     {
62852       return !operator==( rhs );
62853     }
62854 #endif
62855 
62856 
62857 
62858   public:
62859     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
62860     void* pNext = {};
62861     VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
62862     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
62863     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
62864     uint32_t subgroupSize = {};
62865 
62866   };
62867   static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" );
62868   static_assert( std::is_standard_layout<PipelineExecutablePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
62869 
62870   template <>
62871   struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
62872   {
62873     using Type = PipelineExecutablePropertiesKHR;
62874   };
62875 
62876   union PipelineExecutableStatisticValueKHR
62877   {
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)62878     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const& rhs ) VULKAN_HPP_NOEXCEPT
62879     {
62880       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
62881     }
62882 
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::Bool32 b32_={} )62883     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} )
62884       : b32( b32_ )
62885     {}
62886 
PipelineExecutableStatisticValueKHR(int64_t i64_)62887     PipelineExecutableStatisticValueKHR( int64_t i64_ )
62888       : i64( i64_ )
62889     {}
62890 
PipelineExecutableStatisticValueKHR(uint64_t u64_)62891     PipelineExecutableStatisticValueKHR( uint64_t u64_ )
62892       : u64( u64_ )
62893     {}
62894 
PipelineExecutableStatisticValueKHR(double f64_)62895     PipelineExecutableStatisticValueKHR( double f64_ )
62896       : f64( f64_ )
62897     {}
62898 
setB32(VULKAN_HPP_NAMESPACE::Bool32 b32_)62899     PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
62900     {
62901       b32 = b32_;
62902       return *this;
62903     }
62904 
setI64(int64_t i64_)62905     PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
62906     {
62907       i64 = i64_;
62908       return *this;
62909     }
62910 
setU64(uint64_t u64_)62911     PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
62912     {
62913       u64 = u64_;
62914       return *this;
62915     }
62916 
setF64(double f64_)62917     PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
62918     {
62919       f64 = f64_;
62920       return *this;
62921     }
62922 
operator =(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)62923     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62924     {
62925       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
62926       return *this;
62927     }
62928 
operator VkPipelineExecutableStatisticValueKHR const&() const62929     operator VkPipelineExecutableStatisticValueKHR const&() const
62930     {
62931       return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR*>(this);
62932     }
62933 
operator VkPipelineExecutableStatisticValueKHR&()62934     operator VkPipelineExecutableStatisticValueKHR &()
62935     {
62936       return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR*>(this);
62937     }
62938 
62939 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
62940     VULKAN_HPP_NAMESPACE::Bool32 b32;
62941     int64_t i64;
62942     uint64_t u64;
62943     double f64;
62944 #else
62945     VkBool32 b32;
62946     int64_t i64;
62947     uint64_t u64;
62948     double f64;
62949 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
62950   };
62951 
62952   struct PipelineExecutableStatisticKHR
62953   {
62954     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
62955 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR62956     PipelineExecutableStatisticKHR( std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {},
62957                                     std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {},
62958                                     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32,
62959                                     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {} ) VULKAN_HPP_NOEXCEPT
62960       : name( name_ )
62961       , description( description_ )
62962       , format( format_ )
62963       , value( value_ )
62964     {}
62965 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR62966     PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62967     {
62968       memcpy( &pNext, &rhs.pNext, sizeof( PipelineExecutableStatisticKHR ) - offsetof( PipelineExecutableStatisticKHR, pNext ) );
62969       return *this;
62970     }
62971 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR62972     PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62973     {
62974       *this = rhs;
62975     }
62976 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR62977     PipelineExecutableStatisticKHR& operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62978     {
62979       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>(&rhs);
62980       return *this;
62981     }
62982 
62983 
operator VkPipelineExecutableStatisticKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR62984     operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT
62985     {
62986       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR*>( this );
62987     }
62988 
operator VkPipelineExecutableStatisticKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR62989     operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
62990     {
62991       return *reinterpret_cast<VkPipelineExecutableStatisticKHR*>( this );
62992     }
62993 
62994 
62995 
62996 
62997   public:
62998     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
62999     void* pNext = {};
63000     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
63001     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
63002     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
63003     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
63004 
63005   };
63006   static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" );
63007   static_assert( std::is_standard_layout<PipelineExecutableStatisticKHR>::value, "struct wrapper is not a standard layout!" );
63008 
63009   template <>
63010   struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
63011   {
63012     using Type = PipelineExecutableStatisticKHR;
63013   };
63014 
63015   struct PipelineInfoKHR
63016   {
63017     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
63018 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR63019     VULKAN_HPP_CONSTEXPR PipelineInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {} ) VULKAN_HPP_NOEXCEPT
63020       : pipeline( pipeline_ )
63021     {}
63022 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR63023     PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
63024     {
63025       memcpy( &pNext, &rhs.pNext, sizeof( PipelineInfoKHR ) - offsetof( PipelineInfoKHR, pNext ) );
63026       return *this;
63027     }
63028 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR63029     PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
63030     {
63031       *this = rhs;
63032     }
63033 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR63034     PipelineInfoKHR& operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
63035     {
63036       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>(&rhs);
63037       return *this;
63038     }
63039 
setPNextVULKAN_HPP_NAMESPACE::PipelineInfoKHR63040     PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63041     {
63042       pNext = pNext_;
63043       return *this;
63044     }
63045 
setPipelineVULKAN_HPP_NAMESPACE::PipelineInfoKHR63046     PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
63047     {
63048       pipeline = pipeline_;
63049       return *this;
63050     }
63051 
63052 
operator VkPipelineInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineInfoKHR63053     operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT
63054     {
63055       return *reinterpret_cast<const VkPipelineInfoKHR*>( this );
63056     }
63057 
operator VkPipelineInfoKHR&VULKAN_HPP_NAMESPACE::PipelineInfoKHR63058     operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
63059     {
63060       return *reinterpret_cast<VkPipelineInfoKHR*>( this );
63061     }
63062 
63063 
63064 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63065     auto operator<=>( PipelineInfoKHR const& ) const = default;
63066 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInfoKHR63067     bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
63068     {
63069       return ( sType == rhs.sType )
63070           && ( pNext == rhs.pNext )
63071           && ( pipeline == rhs.pipeline );
63072     }
63073 
operator !=VULKAN_HPP_NAMESPACE::PipelineInfoKHR63074     bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
63075     {
63076       return !operator==( rhs );
63077     }
63078 #endif
63079 
63080 
63081 
63082   public:
63083     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
63084     const void* pNext = {};
63085     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
63086 
63087   };
63088   static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" );
63089   static_assert( std::is_standard_layout<PipelineInfoKHR>::value, "struct wrapper is not a standard layout!" );
63090 
63091   template <>
63092   struct CppType<StructureType, StructureType::ePipelineInfoKHR>
63093   {
63094     using Type = PipelineInfoKHR;
63095   };
63096 
63097   struct PushConstantRange
63098   {
63099 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange63100     VULKAN_HPP_CONSTEXPR PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {},
63101                                             uint32_t offset_ = {},
63102                                             uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT
63103       : stageFlags( stageFlags_ )
63104       , offset( offset_ )
63105       , size( size_ )
63106     {}
63107 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange63108     PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
63109     {
63110       *this = rhs;
63111     }
63112 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange63113     PushConstantRange& operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
63114     {
63115       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>(&rhs);
63116       return *this;
63117     }
63118 
setStageFlagsVULKAN_HPP_NAMESPACE::PushConstantRange63119     PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
63120     {
63121       stageFlags = stageFlags_;
63122       return *this;
63123     }
63124 
setOffsetVULKAN_HPP_NAMESPACE::PushConstantRange63125     PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
63126     {
63127       offset = offset_;
63128       return *this;
63129     }
63130 
setSizeVULKAN_HPP_NAMESPACE::PushConstantRange63131     PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
63132     {
63133       size = size_;
63134       return *this;
63135     }
63136 
63137 
operator VkPushConstantRange const&VULKAN_HPP_NAMESPACE::PushConstantRange63138     operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT
63139     {
63140       return *reinterpret_cast<const VkPushConstantRange*>( this );
63141     }
63142 
operator VkPushConstantRange&VULKAN_HPP_NAMESPACE::PushConstantRange63143     operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
63144     {
63145       return *reinterpret_cast<VkPushConstantRange*>( this );
63146     }
63147 
63148 
63149 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63150     auto operator<=>( PushConstantRange const& ) const = default;
63151 #else
operator ==VULKAN_HPP_NAMESPACE::PushConstantRange63152     bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
63153     {
63154       return ( stageFlags == rhs.stageFlags )
63155           && ( offset == rhs.offset )
63156           && ( size == rhs.size );
63157     }
63158 
operator !=VULKAN_HPP_NAMESPACE::PushConstantRange63159     bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
63160     {
63161       return !operator==( rhs );
63162     }
63163 #endif
63164 
63165 
63166 
63167   public:
63168     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
63169     uint32_t offset = {};
63170     uint32_t size = {};
63171 
63172   };
63173   static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" );
63174   static_assert( std::is_standard_layout<PushConstantRange>::value, "struct wrapper is not a standard layout!" );
63175 
63176   struct PipelineLayoutCreateInfo
63177   {
63178     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
63179 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63180     VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {},
63181                                                    uint32_t setLayoutCount_ = {},
63182                                                    const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {},
63183                                                    uint32_t pushConstantRangeCount_ = {},
63184                                                    const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ = {} ) VULKAN_HPP_NOEXCEPT
63185       : flags( flags_ )
63186       , setLayoutCount( setLayoutCount_ )
63187       , pSetLayouts( pSetLayouts_ )
63188       , pushConstantRangeCount( pushConstantRangeCount_ )
63189       , pPushConstantRanges( pPushConstantRanges_ )
63190     {}
63191 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63192     PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
63193     {
63194       memcpy( &pNext, &rhs.pNext, sizeof( PipelineLayoutCreateInfo ) - offsetof( PipelineLayoutCreateInfo, pNext ) );
63195       return *this;
63196     }
63197 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63198     PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
63199     {
63200       *this = rhs;
63201     }
63202 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63203     PipelineLayoutCreateInfo& operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
63204     {
63205       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>(&rhs);
63206       return *this;
63207     }
63208 
setPNextVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63209     PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63210     {
63211       pNext = pNext_;
63212       return *this;
63213     }
63214 
setFlagsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63215     PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
63216     {
63217       flags = flags_;
63218       return *this;
63219     }
63220 
setSetLayoutCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63221     PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
63222     {
63223       setLayoutCount = setLayoutCount_;
63224       return *this;
63225     }
63226 
setPSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63227     PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
63228     {
63229       pSetLayouts = pSetLayouts_;
63230       return *this;
63231     }
63232 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63233     PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
63234     {
63235       pushConstantRangeCount = pushConstantRangeCount_;
63236       return *this;
63237     }
63238 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63239     PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
63240     {
63241       pPushConstantRanges = pPushConstantRanges_;
63242       return *this;
63243     }
63244 
63245 
operator VkPipelineLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63246     operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
63247     {
63248       return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
63249     }
63250 
operator VkPipelineLayoutCreateInfo&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63251     operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
63252     {
63253       return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
63254     }
63255 
63256 
63257 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63258     auto operator<=>( PipelineLayoutCreateInfo const& ) const = default;
63259 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63260     bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
63261     {
63262       return ( sType == rhs.sType )
63263           && ( pNext == rhs.pNext )
63264           && ( flags == rhs.flags )
63265           && ( setLayoutCount == rhs.setLayoutCount )
63266           && ( pSetLayouts == rhs.pSetLayouts )
63267           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
63268           && ( pPushConstantRanges == rhs.pPushConstantRanges );
63269     }
63270 
operator !=VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo63271     bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
63272     {
63273       return !operator==( rhs );
63274     }
63275 #endif
63276 
63277 
63278 
63279   public:
63280     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
63281     const void* pNext = {};
63282     VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
63283     uint32_t setLayoutCount = {};
63284     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
63285     uint32_t pushConstantRangeCount = {};
63286     const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {};
63287 
63288   };
63289   static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" );
63290   static_assert( std::is_standard_layout<PipelineLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
63291 
63292   template <>
63293   struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
63294   {
63295     using Type = PipelineLayoutCreateInfo;
63296   };
63297 
63298 #ifdef VK_ENABLE_BETA_EXTENSIONS
63299   struct PipelineLibraryCreateInfoKHR
63300   {
63301     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
63302 
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63303     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( uint32_t libraryCount_ = {},
63304                                                        const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ = {} ) VULKAN_HPP_NOEXCEPT
63305       : libraryCount( libraryCount_ )
63306       , pLibraries( pLibraries_ )
63307     {}
63308 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63309     PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
63310     {
63311       memcpy( &pNext, &rhs.pNext, sizeof( PipelineLibraryCreateInfoKHR ) - offsetof( PipelineLibraryCreateInfoKHR, pNext ) );
63312       return *this;
63313     }
63314 
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63315     PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
63316     {
63317       *this = rhs;
63318     }
63319 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63320     PipelineLibraryCreateInfoKHR& operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
63321     {
63322       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>(&rhs);
63323       return *this;
63324     }
63325 
setPNextVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63326     PipelineLibraryCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63327     {
63328       pNext = pNext_;
63329       return *this;
63330     }
63331 
setLibraryCountVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63332     PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
63333     {
63334       libraryCount = libraryCount_;
63335       return *this;
63336     }
63337 
setPLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63338     PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ ) VULKAN_HPP_NOEXCEPT
63339     {
63340       pLibraries = pLibraries_;
63341       return *this;
63342     }
63343 
63344 
operator VkPipelineLibraryCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63345     operator VkPipelineLibraryCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
63346     {
63347       return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>( this );
63348     }
63349 
operator VkPipelineLibraryCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63350     operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
63351     {
63352       return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>( this );
63353     }
63354 
63355 
63356 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63357     auto operator<=>( PipelineLibraryCreateInfoKHR const& ) const = default;
63358 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63359     bool operator==( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
63360     {
63361       return ( sType == rhs.sType )
63362           && ( pNext == rhs.pNext )
63363           && ( libraryCount == rhs.libraryCount )
63364           && ( pLibraries == rhs.pLibraries );
63365     }
63366 
operator !=VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR63367     bool operator!=( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
63368     {
63369       return !operator==( rhs );
63370     }
63371 #endif
63372 
63373 
63374 
63375   public:
63376     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
63377     const void* pNext = {};
63378     uint32_t libraryCount = {};
63379     const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries = {};
63380 
63381   };
63382   static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), "struct and wrapper have different size!" );
63383   static_assert( std::is_standard_layout<PipelineLibraryCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
63384 
63385   template <>
63386   struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
63387   {
63388     using Type = PipelineLibraryCreateInfoKHR;
63389   };
63390 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
63391 
63392   struct PipelineRasterizationConservativeStateCreateInfoEXT
63393   {
63394     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
63395 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63396     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {},
63397                                                                               VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled,
63398                                                                               float extraPrimitiveOverestimationSize_ = {} ) VULKAN_HPP_NOEXCEPT
63399       : flags( flags_ )
63400       , conservativeRasterizationMode( conservativeRasterizationMode_ )
63401       , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
63402     {}
63403 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63404     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63405     {
63406       memcpy( &pNext, &rhs.pNext, sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) - offsetof( PipelineRasterizationConservativeStateCreateInfoEXT, pNext ) );
63407       return *this;
63408     }
63409 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63410     PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63411     {
63412       *this = rhs;
63413     }
63414 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63415     PipelineRasterizationConservativeStateCreateInfoEXT& operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63416     {
63417       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>(&rhs);
63418       return *this;
63419     }
63420 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63421     PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63422     {
63423       pNext = pNext_;
63424       return *this;
63425     }
63426 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63427     PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
63428     {
63429       flags = flags_;
63430       return *this;
63431     }
63432 
setConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63433     PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
63434     {
63435       conservativeRasterizationMode = conservativeRasterizationMode_;
63436       return *this;
63437     }
63438 
setExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63439     PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
63440     {
63441       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
63442       return *this;
63443     }
63444 
63445 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63446     operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
63447     {
63448       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
63449     }
63450 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63451     operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
63452     {
63453       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
63454     }
63455 
63456 
63457 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63458     auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const& ) const = default;
63459 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63460     bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63461     {
63462       return ( sType == rhs.sType )
63463           && ( pNext == rhs.pNext )
63464           && ( flags == rhs.flags )
63465           && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
63466           && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
63467     }
63468 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT63469     bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63470     {
63471       return !operator==( rhs );
63472     }
63473 #endif
63474 
63475 
63476 
63477   public:
63478     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
63479     const void* pNext = {};
63480     VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
63481     VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
63482     float extraPrimitiveOverestimationSize = {};
63483 
63484   };
63485   static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" );
63486   static_assert( std::is_standard_layout<PipelineRasterizationConservativeStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
63487 
63488   template <>
63489   struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
63490   {
63491     using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
63492   };
63493 
63494   struct PipelineRasterizationDepthClipStateCreateInfoEXT
63495   {
63496     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
63497 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63498     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {},
63499                                                                            VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {} ) VULKAN_HPP_NOEXCEPT
63500       : flags( flags_ )
63501       , depthClipEnable( depthClipEnable_ )
63502     {}
63503 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63504     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63505     {
63506       memcpy( &pNext, &rhs.pNext, sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) - offsetof( PipelineRasterizationDepthClipStateCreateInfoEXT, pNext ) );
63507       return *this;
63508     }
63509 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63510     PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63511     {
63512       *this = rhs;
63513     }
63514 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63515     PipelineRasterizationDepthClipStateCreateInfoEXT& operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63516     {
63517       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>(&rhs);
63518       return *this;
63519     }
63520 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63521     PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63522     {
63523       pNext = pNext_;
63524       return *this;
63525     }
63526 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63527     PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
63528     {
63529       flags = flags_;
63530       return *this;
63531     }
63532 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63533     PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
63534     {
63535       depthClipEnable = depthClipEnable_;
63536       return *this;
63537     }
63538 
63539 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63540     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
63541     {
63542       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
63543     }
63544 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63545     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
63546     {
63547       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
63548     }
63549 
63550 
63551 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63552     auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const& ) const = default;
63553 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63554     bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63555     {
63556       return ( sType == rhs.sType )
63557           && ( pNext == rhs.pNext )
63558           && ( flags == rhs.flags )
63559           && ( depthClipEnable == rhs.depthClipEnable );
63560     }
63561 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT63562     bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63563     {
63564       return !operator==( rhs );
63565     }
63566 #endif
63567 
63568 
63569 
63570   public:
63571     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
63572     const void* pNext = {};
63573     VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
63574     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
63575 
63576   };
63577   static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" );
63578   static_assert( std::is_standard_layout<PipelineRasterizationDepthClipStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
63579 
63580   template <>
63581   struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
63582   {
63583     using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
63584   };
63585 
63586   struct PipelineRasterizationLineStateCreateInfoEXT
63587   {
63588     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
63589 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63590     VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault,
63591                                                                       VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {},
63592                                                                       uint32_t lineStippleFactor_ = {},
63593                                                                       uint16_t lineStipplePattern_ = {} ) VULKAN_HPP_NOEXCEPT
63594       : lineRasterizationMode( lineRasterizationMode_ )
63595       , stippledLineEnable( stippledLineEnable_ )
63596       , lineStippleFactor( lineStippleFactor_ )
63597       , lineStipplePattern( lineStipplePattern_ )
63598     {}
63599 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63600     PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63601     {
63602       memcpy( &pNext, &rhs.pNext, sizeof( PipelineRasterizationLineStateCreateInfoEXT ) - offsetof( PipelineRasterizationLineStateCreateInfoEXT, pNext ) );
63603       return *this;
63604     }
63605 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63606     PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63607     {
63608       *this = rhs;
63609     }
63610 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63611     PipelineRasterizationLineStateCreateInfoEXT& operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63612     {
63613       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>(&rhs);
63614       return *this;
63615     }
63616 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63617     PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63618     {
63619       pNext = pNext_;
63620       return *this;
63621     }
63622 
setLineRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63623     PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
63624     {
63625       lineRasterizationMode = lineRasterizationMode_;
63626       return *this;
63627     }
63628 
setStippledLineEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63629     PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
63630     {
63631       stippledLineEnable = stippledLineEnable_;
63632       return *this;
63633     }
63634 
setLineStippleFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63635     PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
63636     {
63637       lineStippleFactor = lineStippleFactor_;
63638       return *this;
63639     }
63640 
setLineStipplePatternVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63641     PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
63642     {
63643       lineStipplePattern = lineStipplePattern_;
63644       return *this;
63645     }
63646 
63647 
operator VkPipelineRasterizationLineStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63648     operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
63649     {
63650       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
63651     }
63652 
operator VkPipelineRasterizationLineStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63653     operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
63654     {
63655       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
63656     }
63657 
63658 
63659 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63660     auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const& ) const = default;
63661 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63662     bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63663     {
63664       return ( sType == rhs.sType )
63665           && ( pNext == rhs.pNext )
63666           && ( lineRasterizationMode == rhs.lineRasterizationMode )
63667           && ( stippledLineEnable == rhs.stippledLineEnable )
63668           && ( lineStippleFactor == rhs.lineStippleFactor )
63669           && ( lineStipplePattern == rhs.lineStipplePattern );
63670     }
63671 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT63672     bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63673     {
63674       return !operator==( rhs );
63675     }
63676 #endif
63677 
63678 
63679 
63680   public:
63681     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
63682     const void* pNext = {};
63683     VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
63684     VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
63685     uint32_t lineStippleFactor = {};
63686     uint16_t lineStipplePattern = {};
63687 
63688   };
63689   static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" );
63690   static_assert( std::is_standard_layout<PipelineRasterizationLineStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
63691 
63692   template <>
63693   struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
63694   {
63695     using Type = PipelineRasterizationLineStateCreateInfoEXT;
63696   };
63697 
63698   struct PipelineRasterizationStateRasterizationOrderAMD
63699   {
63700     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
63701 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63702     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict ) VULKAN_HPP_NOEXCEPT
63703       : rasterizationOrder( rasterizationOrder_ )
63704     {}
63705 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63706     PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
63707     {
63708       memcpy( &pNext, &rhs.pNext, sizeof( PipelineRasterizationStateRasterizationOrderAMD ) - offsetof( PipelineRasterizationStateRasterizationOrderAMD, pNext ) );
63709       return *this;
63710     }
63711 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63712     PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
63713     {
63714       *this = rhs;
63715     }
63716 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63717     PipelineRasterizationStateRasterizationOrderAMD& operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
63718     {
63719       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>(&rhs);
63720       return *this;
63721     }
63722 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63723     PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63724     {
63725       pNext = pNext_;
63726       return *this;
63727     }
63728 
setRasterizationOrderVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63729     PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
63730     {
63731       rasterizationOrder = rasterizationOrder_;
63732       return *this;
63733     }
63734 
63735 
operator VkPipelineRasterizationStateRasterizationOrderAMD const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63736     operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT
63737     {
63738       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
63739     }
63740 
operator VkPipelineRasterizationStateRasterizationOrderAMD&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63741     operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
63742     {
63743       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
63744     }
63745 
63746 
63747 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63748     auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const& ) const = default;
63749 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63750     bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
63751     {
63752       return ( sType == rhs.sType )
63753           && ( pNext == rhs.pNext )
63754           && ( rasterizationOrder == rhs.rasterizationOrder );
63755     }
63756 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD63757     bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
63758     {
63759       return !operator==( rhs );
63760     }
63761 #endif
63762 
63763 
63764 
63765   public:
63766     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
63767     const void* pNext = {};
63768     VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
63769 
63770   };
63771   static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" );
63772   static_assert( std::is_standard_layout<PipelineRasterizationStateRasterizationOrderAMD>::value, "struct wrapper is not a standard layout!" );
63773 
63774   template <>
63775   struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
63776   {
63777     using Type = PipelineRasterizationStateRasterizationOrderAMD;
63778   };
63779 
63780   struct PipelineRasterizationStateStreamCreateInfoEXT
63781   {
63782     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
63783 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63784     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {},
63785                                                                         uint32_t rasterizationStream_ = {} ) VULKAN_HPP_NOEXCEPT
63786       : flags( flags_ )
63787       , rasterizationStream( rasterizationStream_ )
63788     {}
63789 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63790     PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63791     {
63792       memcpy( &pNext, &rhs.pNext, sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) - offsetof( PipelineRasterizationStateStreamCreateInfoEXT, pNext ) );
63793       return *this;
63794     }
63795 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63796     PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63797     {
63798       *this = rhs;
63799     }
63800 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63801     PipelineRasterizationStateStreamCreateInfoEXT& operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63802     {
63803       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>(&rhs);
63804       return *this;
63805     }
63806 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63807     PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63808     {
63809       pNext = pNext_;
63810       return *this;
63811     }
63812 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63813     PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
63814     {
63815       flags = flags_;
63816       return *this;
63817     }
63818 
setRasterizationStreamVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63819     PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
63820     {
63821       rasterizationStream = rasterizationStream_;
63822       return *this;
63823     }
63824 
63825 
operator VkPipelineRasterizationStateStreamCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63826     operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
63827     {
63828       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
63829     }
63830 
operator VkPipelineRasterizationStateStreamCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63831     operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
63832     {
63833       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
63834     }
63835 
63836 
63837 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63838     auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const& ) const = default;
63839 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63840     bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63841     {
63842       return ( sType == rhs.sType )
63843           && ( pNext == rhs.pNext )
63844           && ( flags == rhs.flags )
63845           && ( rasterizationStream == rhs.rasterizationStream );
63846     }
63847 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT63848     bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63849     {
63850       return !operator==( rhs );
63851     }
63852 #endif
63853 
63854 
63855 
63856   public:
63857     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
63858     const void* pNext = {};
63859     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
63860     uint32_t rasterizationStream = {};
63861 
63862   };
63863   static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" );
63864   static_assert( std::is_standard_layout<PipelineRasterizationStateStreamCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
63865 
63866   template <>
63867   struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
63868   {
63869     using Type = PipelineRasterizationStateStreamCreateInfoEXT;
63870   };
63871 
63872   struct PipelineRepresentativeFragmentTestStateCreateInfoNV
63873   {
63874     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
63875 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63876     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {} ) VULKAN_HPP_NOEXCEPT
63877       : representativeFragmentTestEnable( representativeFragmentTestEnable_ )
63878     {}
63879 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63880     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
63881     {
63882       memcpy( &pNext, &rhs.pNext, sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) - offsetof( PipelineRepresentativeFragmentTestStateCreateInfoNV, pNext ) );
63883       return *this;
63884     }
63885 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63886     PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
63887     {
63888       *this = rhs;
63889     }
63890 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63891     PipelineRepresentativeFragmentTestStateCreateInfoNV& operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
63892     {
63893       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>(&rhs);
63894       return *this;
63895     }
63896 
setPNextVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63897     PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63898     {
63899       pNext = pNext_;
63900       return *this;
63901     }
63902 
setRepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63903     PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
63904     {
63905       representativeFragmentTestEnable = representativeFragmentTestEnable_;
63906       return *this;
63907     }
63908 
63909 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63910     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
63911     {
63912       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
63913     }
63914 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63915     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
63916     {
63917       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
63918     }
63919 
63920 
63921 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63922     auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const& ) const = default;
63923 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63924     bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63925     {
63926       return ( sType == rhs.sType )
63927           && ( pNext == rhs.pNext )
63928           && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
63929     }
63930 
operator !=VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV63931     bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63932     {
63933       return !operator==( rhs );
63934     }
63935 #endif
63936 
63937 
63938 
63939   public:
63940     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
63941     const void* pNext = {};
63942     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
63943 
63944   };
63945   static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" );
63946   static_assert( std::is_standard_layout<PipelineRepresentativeFragmentTestStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
63947 
63948   template <>
63949   struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
63950   {
63951     using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
63952   };
63953 
63954   struct PipelineSampleLocationsStateCreateInfoEXT
63955   {
63956     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
63957 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT63958     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {},
63959                                                                     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
63960       : sampleLocationsEnable( sampleLocationsEnable_ )
63961       , sampleLocationsInfo( sampleLocationsInfo_ )
63962     {}
63963 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT63964     PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63965     {
63966       memcpy( &pNext, &rhs.pNext, sizeof( PipelineSampleLocationsStateCreateInfoEXT ) - offsetof( PipelineSampleLocationsStateCreateInfoEXT, pNext ) );
63967       return *this;
63968     }
63969 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT63970     PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63971     {
63972       *this = rhs;
63973     }
63974 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT63975     PipelineSampleLocationsStateCreateInfoEXT& operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63976     {
63977       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>(&rhs);
63978       return *this;
63979     }
63980 
setPNextVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT63981     PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63982     {
63983       pNext = pNext_;
63984       return *this;
63985     }
63986 
setSampleLocationsEnableVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT63987     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
63988     {
63989       sampleLocationsEnable = sampleLocationsEnable_;
63990       return *this;
63991     }
63992 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT63993     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
63994     {
63995       sampleLocationsInfo = sampleLocationsInfo_;
63996       return *this;
63997     }
63998 
63999 
operator VkPipelineSampleLocationsStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT64000     operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
64001     {
64002       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
64003     }
64004 
operator VkPipelineSampleLocationsStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT64005     operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
64006     {
64007       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
64008     }
64009 
64010 
64011 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64012     auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const& ) const = default;
64013 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT64014     bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64015     {
64016       return ( sType == rhs.sType )
64017           && ( pNext == rhs.pNext )
64018           && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
64019           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
64020     }
64021 
operator !=VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT64022     bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64023     {
64024       return !operator==( rhs );
64025     }
64026 #endif
64027 
64028 
64029 
64030   public:
64031     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
64032     const void* pNext = {};
64033     VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
64034     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
64035 
64036   };
64037   static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" );
64038   static_assert( std::is_standard_layout<PipelineSampleLocationsStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
64039 
64040   template <>
64041   struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
64042   {
64043     using Type = PipelineSampleLocationsStateCreateInfoEXT;
64044   };
64045 
64046   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
64047   {
64048     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
64049 
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64050     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( uint32_t requiredSubgroupSize_ = {} ) VULKAN_HPP_NOEXCEPT
64051       : requiredSubgroupSize( requiredSubgroupSize_ )
64052     {}
64053 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64054     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64055     {
64056       memcpy( &pNext, &rhs.pNext, sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) - offsetof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, pNext ) );
64057       return *this;
64058     }
64059 
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64060     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64061     {
64062       *this = rhs;
64063     }
64064 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64065     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64066     {
64067       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const *>(&rhs);
64068       return *this;
64069     }
64070 
64071 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64072     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
64073     {
64074       return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
64075     }
64076 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64077     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
64078     {
64079       return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
64080     }
64081 
64082 
64083 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64084     auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& ) const = default;
64085 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64086     bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64087     {
64088       return ( sType == rhs.sType )
64089           && ( pNext == rhs.pNext )
64090           && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
64091     }
64092 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT64093     bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64094     {
64095       return !operator==( rhs );
64096     }
64097 #endif
64098 
64099 
64100 
64101   public:
64102     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
64103     void* pNext = {};
64104     uint32_t requiredSubgroupSize = {};
64105 
64106   };
64107   static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" );
64108   static_assert( std::is_standard_layout<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
64109 
64110   template <>
64111   struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>
64112   {
64113     using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
64114   };
64115 
64116   struct PipelineTessellationDomainOriginStateCreateInfo
64117   {
64118     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
64119 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64120     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft ) VULKAN_HPP_NOEXCEPT
64121       : domainOrigin( domainOrigin_ )
64122     {}
64123 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64124     PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64125     {
64126       memcpy( &pNext, &rhs.pNext, sizeof( PipelineTessellationDomainOriginStateCreateInfo ) - offsetof( PipelineTessellationDomainOriginStateCreateInfo, pNext ) );
64127       return *this;
64128     }
64129 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64130     PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64131     {
64132       *this = rhs;
64133     }
64134 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64135     PipelineTessellationDomainOriginStateCreateInfo& operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64136     {
64137       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>(&rhs);
64138       return *this;
64139     }
64140 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64141     PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64142     {
64143       pNext = pNext_;
64144       return *this;
64145     }
64146 
setDomainOriginVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64147     PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
64148     {
64149       domainOrigin = domainOrigin_;
64150       return *this;
64151     }
64152 
64153 
operator VkPipelineTessellationDomainOriginStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64154     operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
64155     {
64156       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
64157     }
64158 
operator VkPipelineTessellationDomainOriginStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64159     operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
64160     {
64161       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
64162     }
64163 
64164 
64165 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64166     auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const& ) const = default;
64167 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64168     bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64169     {
64170       return ( sType == rhs.sType )
64171           && ( pNext == rhs.pNext )
64172           && ( domainOrigin == rhs.domainOrigin );
64173     }
64174 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo64175     bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64176     {
64177       return !operator==( rhs );
64178     }
64179 #endif
64180 
64181 
64182 
64183   public:
64184     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
64185     const void* pNext = {};
64186     VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
64187 
64188   };
64189   static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" );
64190   static_assert( std::is_standard_layout<PipelineTessellationDomainOriginStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
64191 
64192   template <>
64193   struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
64194   {
64195     using Type = PipelineTessellationDomainOriginStateCreateInfo;
64196   };
64197 
64198   struct VertexInputBindingDivisorDescriptionEXT
64199   {
64200 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64201     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = {},
64202                                                                   uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT
64203       : binding( binding_ )
64204       , divisor( divisor_ )
64205     {}
64206 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64207     VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64208     {
64209       *this = rhs;
64210     }
64211 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64212     VertexInputBindingDivisorDescriptionEXT& operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64213     {
64214       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>(&rhs);
64215       return *this;
64216     }
64217 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64218     VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
64219     {
64220       binding = binding_;
64221       return *this;
64222     }
64223 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64224     VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
64225     {
64226       divisor = divisor_;
64227       return *this;
64228     }
64229 
64230 
operator VkVertexInputBindingDivisorDescriptionEXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64231     operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT
64232     {
64233       return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
64234     }
64235 
operator VkVertexInputBindingDivisorDescriptionEXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64236     operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
64237     {
64238       return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
64239     }
64240 
64241 
64242 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64243     auto operator<=>( VertexInputBindingDivisorDescriptionEXT const& ) const = default;
64244 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64245     bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64246     {
64247       return ( binding == rhs.binding )
64248           && ( divisor == rhs.divisor );
64249     }
64250 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT64251     bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64252     {
64253       return !operator==( rhs );
64254     }
64255 #endif
64256 
64257 
64258 
64259   public:
64260     uint32_t binding = {};
64261     uint32_t divisor = {};
64262 
64263   };
64264   static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" );
64265   static_assert( std::is_standard_layout<VertexInputBindingDivisorDescriptionEXT>::value, "struct wrapper is not a standard layout!" );
64266 
64267   struct PipelineVertexInputDivisorStateCreateInfoEXT
64268   {
64269     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
64270 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64271     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = {},
64272                                                                        const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {} ) VULKAN_HPP_NOEXCEPT
64273       : vertexBindingDivisorCount( vertexBindingDivisorCount_ )
64274       , pVertexBindingDivisors( pVertexBindingDivisors_ )
64275     {}
64276 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64277     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64278     {
64279       memcpy( &pNext, &rhs.pNext, sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) - offsetof( PipelineVertexInputDivisorStateCreateInfoEXT, pNext ) );
64280       return *this;
64281     }
64282 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64283     PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64284     {
64285       *this = rhs;
64286     }
64287 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64288     PipelineVertexInputDivisorStateCreateInfoEXT& operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64289     {
64290       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>(&rhs);
64291       return *this;
64292     }
64293 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64294     PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64295     {
64296       pNext = pNext_;
64297       return *this;
64298     }
64299 
setVertexBindingDivisorCountVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64300     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
64301     {
64302       vertexBindingDivisorCount = vertexBindingDivisorCount_;
64303       return *this;
64304     }
64305 
setPVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64306     PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
64307     {
64308       pVertexBindingDivisors = pVertexBindingDivisors_;
64309       return *this;
64310     }
64311 
64312 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64313     operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
64314     {
64315       return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
64316     }
64317 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64318     operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
64319     {
64320       return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
64321     }
64322 
64323 
64324 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64325     auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const& ) const = default;
64326 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64327     bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64328     {
64329       return ( sType == rhs.sType )
64330           && ( pNext == rhs.pNext )
64331           && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
64332           && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
64333     }
64334 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT64335     bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64336     {
64337       return !operator==( rhs );
64338     }
64339 #endif
64340 
64341 
64342 
64343   public:
64344     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
64345     const void* pNext = {};
64346     uint32_t vertexBindingDivisorCount = {};
64347     const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {};
64348 
64349   };
64350   static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" );
64351   static_assert( std::is_standard_layout<PipelineVertexInputDivisorStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
64352 
64353   template <>
64354   struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
64355   {
64356     using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
64357   };
64358 
64359   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
64360   {
64361     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
64362 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64363     VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault,
64364                                                                              uint32_t customSampleOrderCount_ = {},
64365                                                                              const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ = {} ) VULKAN_HPP_NOEXCEPT
64366       : sampleOrderType( sampleOrderType_ )
64367       , customSampleOrderCount( customSampleOrderCount_ )
64368       , pCustomSampleOrders( pCustomSampleOrders_ )
64369     {}
64370 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64371     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64372     {
64373       memcpy( &pNext, &rhs.pNext, sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) - offsetof( PipelineViewportCoarseSampleOrderStateCreateInfoNV, pNext ) );
64374       return *this;
64375     }
64376 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64377     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64378     {
64379       *this = rhs;
64380     }
64381 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64382     PipelineViewportCoarseSampleOrderStateCreateInfoNV& operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64383     {
64384       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>(&rhs);
64385       return *this;
64386     }
64387 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64388     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64389     {
64390       pNext = pNext_;
64391       return *this;
64392     }
64393 
setSampleOrderTypeVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64394     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
64395     {
64396       sampleOrderType = sampleOrderType_;
64397       return *this;
64398     }
64399 
setCustomSampleOrderCountVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64400     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
64401     {
64402       customSampleOrderCount = customSampleOrderCount_;
64403       return *this;
64404     }
64405 
setPCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64406     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
64407     {
64408       pCustomSampleOrders = pCustomSampleOrders_;
64409       return *this;
64410     }
64411 
64412 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64413     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
64414     {
64415       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
64416     }
64417 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64418     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
64419     {
64420       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
64421     }
64422 
64423 
64424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64425     auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& ) const = default;
64426 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64427     bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64428     {
64429       return ( sType == rhs.sType )
64430           && ( pNext == rhs.pNext )
64431           && ( sampleOrderType == rhs.sampleOrderType )
64432           && ( customSampleOrderCount == rhs.customSampleOrderCount )
64433           && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
64434     }
64435 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV64436     bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64437     {
64438       return !operator==( rhs );
64439     }
64440 #endif
64441 
64442 
64443 
64444   public:
64445     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
64446     const void* pNext = {};
64447     VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
64448     uint32_t customSampleOrderCount = {};
64449     const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {};
64450 
64451   };
64452   static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" );
64453   static_assert( std::is_standard_layout<PipelineViewportCoarseSampleOrderStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
64454 
64455   template <>
64456   struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
64457   {
64458     using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
64459   };
64460 
64461   struct PipelineViewportExclusiveScissorStateCreateInfoNV
64462   {
64463     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
64464 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64465     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = {},
64466                                                                             const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {} ) VULKAN_HPP_NOEXCEPT
64467       : exclusiveScissorCount( exclusiveScissorCount_ )
64468       , pExclusiveScissors( pExclusiveScissors_ )
64469     {}
64470 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64471     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64472     {
64473       memcpy( &pNext, &rhs.pNext, sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) - offsetof( PipelineViewportExclusiveScissorStateCreateInfoNV, pNext ) );
64474       return *this;
64475     }
64476 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64477     PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64478     {
64479       *this = rhs;
64480     }
64481 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64482     PipelineViewportExclusiveScissorStateCreateInfoNV& operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64483     {
64484       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>(&rhs);
64485       return *this;
64486     }
64487 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64488     PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64489     {
64490       pNext = pNext_;
64491       return *this;
64492     }
64493 
setExclusiveScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64494     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
64495     {
64496       exclusiveScissorCount = exclusiveScissorCount_;
64497       return *this;
64498     }
64499 
setPExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64500     PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
64501     {
64502       pExclusiveScissors = pExclusiveScissors_;
64503       return *this;
64504     }
64505 
64506 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64507     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
64508     {
64509       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
64510     }
64511 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64512     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
64513     {
64514       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
64515     }
64516 
64517 
64518 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64519     auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const& ) const = default;
64520 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64521     bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64522     {
64523       return ( sType == rhs.sType )
64524           && ( pNext == rhs.pNext )
64525           && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
64526           && ( pExclusiveScissors == rhs.pExclusiveScissors );
64527     }
64528 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV64529     bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64530     {
64531       return !operator==( rhs );
64532     }
64533 #endif
64534 
64535 
64536 
64537   public:
64538     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
64539     const void* pNext = {};
64540     uint32_t exclusiveScissorCount = {};
64541     const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {};
64542 
64543   };
64544   static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" );
64545   static_assert( std::is_standard_layout<PipelineViewportExclusiveScissorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
64546 
64547   template <>
64548   struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
64549   {
64550     using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
64551   };
64552 
64553   struct ShadingRatePaletteNV
64554   {
64555 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64556     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = {},
64557                                                const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {} ) VULKAN_HPP_NOEXCEPT
64558       : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ )
64559       , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
64560     {}
64561 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64562     ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
64563     {
64564       *this = rhs;
64565     }
64566 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64567     ShadingRatePaletteNV& operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
64568     {
64569       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>(&rhs);
64570       return *this;
64571     }
64572 
setShadingRatePaletteEntryCountVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64573     ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
64574     {
64575       shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
64576       return *this;
64577     }
64578 
setPShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64579     ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
64580     {
64581       pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
64582       return *this;
64583     }
64584 
64585 
operator VkShadingRatePaletteNV const&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64586     operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT
64587     {
64588       return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
64589     }
64590 
operator VkShadingRatePaletteNV&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64591     operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
64592     {
64593       return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
64594     }
64595 
64596 
64597 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64598     auto operator<=>( ShadingRatePaletteNV const& ) const = default;
64599 #else
operator ==VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64600     bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64601     {
64602       return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
64603           && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
64604     }
64605 
operator !=VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV64606     bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64607     {
64608       return !operator==( rhs );
64609     }
64610 #endif
64611 
64612 
64613 
64614   public:
64615     uint32_t shadingRatePaletteEntryCount = {};
64616     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {};
64617 
64618   };
64619   static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" );
64620   static_assert( std::is_standard_layout<ShadingRatePaletteNV>::value, "struct wrapper is not a standard layout!" );
64621 
64622   struct PipelineViewportShadingRateImageStateCreateInfoNV
64623   {
64624     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
64625 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64626     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {},
64627                                                                             uint32_t viewportCount_ = {},
64628                                                                             const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {} ) VULKAN_HPP_NOEXCEPT
64629       : shadingRateImageEnable( shadingRateImageEnable_ )
64630       , viewportCount( viewportCount_ )
64631       , pShadingRatePalettes( pShadingRatePalettes_ )
64632     {}
64633 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64634     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64635     {
64636       memcpy( &pNext, &rhs.pNext, sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) - offsetof( PipelineViewportShadingRateImageStateCreateInfoNV, pNext ) );
64637       return *this;
64638     }
64639 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64640     PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64641     {
64642       *this = rhs;
64643     }
64644 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64645     PipelineViewportShadingRateImageStateCreateInfoNV& operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64646     {
64647       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>(&rhs);
64648       return *this;
64649     }
64650 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64651     PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64652     {
64653       pNext = pNext_;
64654       return *this;
64655     }
64656 
setShadingRateImageEnableVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64657     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
64658     {
64659       shadingRateImageEnable = shadingRateImageEnable_;
64660       return *this;
64661     }
64662 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64663     PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
64664     {
64665       viewportCount = viewportCount_;
64666       return *this;
64667     }
64668 
setPShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64669     PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
64670     {
64671       pShadingRatePalettes = pShadingRatePalettes_;
64672       return *this;
64673     }
64674 
64675 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64676     operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
64677     {
64678       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
64679     }
64680 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64681     operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
64682     {
64683       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
64684     }
64685 
64686 
64687 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64688     auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const& ) const = default;
64689 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64690     bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64691     {
64692       return ( sType == rhs.sType )
64693           && ( pNext == rhs.pNext )
64694           && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
64695           && ( viewportCount == rhs.viewportCount )
64696           && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
64697     }
64698 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV64699     bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64700     {
64701       return !operator==( rhs );
64702     }
64703 #endif
64704 
64705 
64706 
64707   public:
64708     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
64709     const void* pNext = {};
64710     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
64711     uint32_t viewportCount = {};
64712     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {};
64713 
64714   };
64715   static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" );
64716   static_assert( std::is_standard_layout<PipelineViewportShadingRateImageStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
64717 
64718   template <>
64719   struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
64720   {
64721     using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
64722   };
64723 
64724   struct ViewportSwizzleNV
64725   {
64726 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV64727     VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
64728                                             VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
64729                                             VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
64730                                             VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX ) VULKAN_HPP_NOEXCEPT
64731       : x( x_ )
64732       , y( y_ )
64733       , z( z_ )
64734       , w( w_ )
64735     {}
64736 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV64737     ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
64738     {
64739       *this = rhs;
64740     }
64741 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV64742     ViewportSwizzleNV& operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
64743     {
64744       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>(&rhs);
64745       return *this;
64746     }
64747 
setXVULKAN_HPP_NAMESPACE::ViewportSwizzleNV64748     ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
64749     {
64750       x = x_;
64751       return *this;
64752     }
64753 
setYVULKAN_HPP_NAMESPACE::ViewportSwizzleNV64754     ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
64755     {
64756       y = y_;
64757       return *this;
64758     }
64759 
setZVULKAN_HPP_NAMESPACE::ViewportSwizzleNV64760     ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
64761     {
64762       z = z_;
64763       return *this;
64764     }
64765 
setWVULKAN_HPP_NAMESPACE::ViewportSwizzleNV64766     ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
64767     {
64768       w = w_;
64769       return *this;
64770     }
64771 
64772 
operator VkViewportSwizzleNV const&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV64773     operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT
64774     {
64775       return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
64776     }
64777 
operator VkViewportSwizzleNV&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV64778     operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
64779     {
64780       return *reinterpret_cast<VkViewportSwizzleNV*>( this );
64781     }
64782 
64783 
64784 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64785     auto operator<=>( ViewportSwizzleNV const& ) const = default;
64786 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportSwizzleNV64787     bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64788     {
64789       return ( x == rhs.x )
64790           && ( y == rhs.y )
64791           && ( z == rhs.z )
64792           && ( w == rhs.w );
64793     }
64794 
operator !=VULKAN_HPP_NAMESPACE::ViewportSwizzleNV64795     bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64796     {
64797       return !operator==( rhs );
64798     }
64799 #endif
64800 
64801 
64802 
64803   public:
64804     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
64805     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
64806     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
64807     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
64808 
64809   };
64810   static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" );
64811   static_assert( std::is_standard_layout<ViewportSwizzleNV>::value, "struct wrapper is not a standard layout!" );
64812 
64813   struct PipelineViewportSwizzleStateCreateInfoNV
64814   {
64815     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
64816 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64817     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {},
64818                                                                    uint32_t viewportCount_ = {},
64819                                                                    const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {} ) VULKAN_HPP_NOEXCEPT
64820       : flags( flags_ )
64821       , viewportCount( viewportCount_ )
64822       , pViewportSwizzles( pViewportSwizzles_ )
64823     {}
64824 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64825     PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64826     {
64827       memcpy( &pNext, &rhs.pNext, sizeof( PipelineViewportSwizzleStateCreateInfoNV ) - offsetof( PipelineViewportSwizzleStateCreateInfoNV, pNext ) );
64828       return *this;
64829     }
64830 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64831     PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64832     {
64833       *this = rhs;
64834     }
64835 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64836     PipelineViewportSwizzleStateCreateInfoNV& operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64837     {
64838       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>(&rhs);
64839       return *this;
64840     }
64841 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64842     PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64843     {
64844       pNext = pNext_;
64845       return *this;
64846     }
64847 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64848     PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
64849     {
64850       flags = flags_;
64851       return *this;
64852     }
64853 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64854     PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
64855     {
64856       viewportCount = viewportCount_;
64857       return *this;
64858     }
64859 
setPViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64860     PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
64861     {
64862       pViewportSwizzles = pViewportSwizzles_;
64863       return *this;
64864     }
64865 
64866 
operator VkPipelineViewportSwizzleStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64867     operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
64868     {
64869       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
64870     }
64871 
operator VkPipelineViewportSwizzleStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64872     operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
64873     {
64874       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
64875     }
64876 
64877 
64878 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64879     auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const& ) const = default;
64880 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64881     bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64882     {
64883       return ( sType == rhs.sType )
64884           && ( pNext == rhs.pNext )
64885           && ( flags == rhs.flags )
64886           && ( viewportCount == rhs.viewportCount )
64887           && ( pViewportSwizzles == rhs.pViewportSwizzles );
64888     }
64889 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV64890     bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64891     {
64892       return !operator==( rhs );
64893     }
64894 #endif
64895 
64896 
64897 
64898   public:
64899     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
64900     const void* pNext = {};
64901     VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
64902     uint32_t viewportCount = {};
64903     const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {};
64904 
64905   };
64906   static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" );
64907   static_assert( std::is_standard_layout<PipelineViewportSwizzleStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
64908 
64909   template <>
64910   struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
64911   {
64912     using Type = PipelineViewportSwizzleStateCreateInfoNV;
64913   };
64914 
64915   struct ViewportWScalingNV
64916   {
64917 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV64918     VULKAN_HPP_CONSTEXPR ViewportWScalingNV( float xcoeff_ = {},
64919                                              float ycoeff_ = {} ) VULKAN_HPP_NOEXCEPT
64920       : xcoeff( xcoeff_ )
64921       , ycoeff( ycoeff_ )
64922     {}
64923 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV64924     ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
64925     {
64926       *this = rhs;
64927     }
64928 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV64929     ViewportWScalingNV& operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
64930     {
64931       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>(&rhs);
64932       return *this;
64933     }
64934 
setXcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV64935     ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
64936     {
64937       xcoeff = xcoeff_;
64938       return *this;
64939     }
64940 
setYcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV64941     ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
64942     {
64943       ycoeff = ycoeff_;
64944       return *this;
64945     }
64946 
64947 
operator VkViewportWScalingNV const&VULKAN_HPP_NAMESPACE::ViewportWScalingNV64948     operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT
64949     {
64950       return *reinterpret_cast<const VkViewportWScalingNV*>( this );
64951     }
64952 
operator VkViewportWScalingNV&VULKAN_HPP_NAMESPACE::ViewportWScalingNV64953     operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
64954     {
64955       return *reinterpret_cast<VkViewportWScalingNV*>( this );
64956     }
64957 
64958 
64959 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64960     auto operator<=>( ViewportWScalingNV const& ) const = default;
64961 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportWScalingNV64962     bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64963     {
64964       return ( xcoeff == rhs.xcoeff )
64965           && ( ycoeff == rhs.ycoeff );
64966     }
64967 
operator !=VULKAN_HPP_NAMESPACE::ViewportWScalingNV64968     bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64969     {
64970       return !operator==( rhs );
64971     }
64972 #endif
64973 
64974 
64975 
64976   public:
64977     float xcoeff = {};
64978     float ycoeff = {};
64979 
64980   };
64981   static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" );
64982   static_assert( std::is_standard_layout<ViewportWScalingNV>::value, "struct wrapper is not a standard layout!" );
64983 
64984   struct PipelineViewportWScalingStateCreateInfoNV
64985   {
64986     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
64987 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV64988     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {},
64989                                                                     uint32_t viewportCount_ = {},
64990                                                                     const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {} ) VULKAN_HPP_NOEXCEPT
64991       : viewportWScalingEnable( viewportWScalingEnable_ )
64992       , viewportCount( viewportCount_ )
64993       , pViewportWScalings( pViewportWScalings_ )
64994     {}
64995 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV64996     PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
64997     {
64998       memcpy( &pNext, &rhs.pNext, sizeof( PipelineViewportWScalingStateCreateInfoNV ) - offsetof( PipelineViewportWScalingStateCreateInfoNV, pNext ) );
64999       return *this;
65000     }
65001 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65002     PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
65003     {
65004       *this = rhs;
65005     }
65006 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65007     PipelineViewportWScalingStateCreateInfoNV& operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
65008     {
65009       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>(&rhs);
65010       return *this;
65011     }
65012 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65013     PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65014     {
65015       pNext = pNext_;
65016       return *this;
65017     }
65018 
setViewportWScalingEnableVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65019     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
65020     {
65021       viewportWScalingEnable = viewportWScalingEnable_;
65022       return *this;
65023     }
65024 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65025     PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
65026     {
65027       viewportCount = viewportCount_;
65028       return *this;
65029     }
65030 
setPViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65031     PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
65032     {
65033       pViewportWScalings = pViewportWScalings_;
65034       return *this;
65035     }
65036 
65037 
operator VkPipelineViewportWScalingStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65038     operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
65039     {
65040       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
65041     }
65042 
operator VkPipelineViewportWScalingStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65043     operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
65044     {
65045       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
65046     }
65047 
65048 
65049 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65050     auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const& ) const = default;
65051 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65052     bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65053     {
65054       return ( sType == rhs.sType )
65055           && ( pNext == rhs.pNext )
65056           && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
65057           && ( viewportCount == rhs.viewportCount )
65058           && ( pViewportWScalings == rhs.pViewportWScalings );
65059     }
65060 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV65061     bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65062     {
65063       return !operator==( rhs );
65064     }
65065 #endif
65066 
65067 
65068 
65069   public:
65070     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
65071     const void* pNext = {};
65072     VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
65073     uint32_t viewportCount = {};
65074     const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {};
65075 
65076   };
65077   static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" );
65078   static_assert( std::is_standard_layout<PipelineViewportWScalingStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
65079 
65080   template <>
65081   struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
65082   {
65083     using Type = PipelineViewportWScalingStateCreateInfoNV;
65084   };
65085 
65086 #ifdef VK_USE_PLATFORM_GGP
65087   struct PresentFrameTokenGGP
65088   {
65089     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
65090 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65091     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( GgpFrameToken frameToken_ = {} ) VULKAN_HPP_NOEXCEPT
65092       : frameToken( frameToken_ )
65093     {}
65094 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65095     PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
65096     {
65097       memcpy( &pNext, &rhs.pNext, sizeof( PresentFrameTokenGGP ) - offsetof( PresentFrameTokenGGP, pNext ) );
65098       return *this;
65099     }
65100 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65101     PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
65102     {
65103       *this = rhs;
65104     }
65105 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65106     PresentFrameTokenGGP& operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
65107     {
65108       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>(&rhs);
65109       return *this;
65110     }
65111 
setPNextVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65112     PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65113     {
65114       pNext = pNext_;
65115       return *this;
65116     }
65117 
setFrameTokenVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65118     PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
65119     {
65120       frameToken = frameToken_;
65121       return *this;
65122     }
65123 
65124 
operator VkPresentFrameTokenGGP const&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65125     operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT
65126     {
65127       return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
65128     }
65129 
operator VkPresentFrameTokenGGP&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65130     operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
65131     {
65132       return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
65133     }
65134 
65135 
65136 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65137     auto operator<=>( PresentFrameTokenGGP const& ) const = default;
65138 #else
operator ==VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65139     bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
65140     {
65141       return ( sType == rhs.sType )
65142           && ( pNext == rhs.pNext )
65143           && ( frameToken == rhs.frameToken );
65144     }
65145 
operator !=VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP65146     bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
65147     {
65148       return !operator==( rhs );
65149     }
65150 #endif
65151 
65152 
65153 
65154   public:
65155     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
65156     const void* pNext = {};
65157     GgpFrameToken frameToken = {};
65158 
65159   };
65160   static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" );
65161   static_assert( std::is_standard_layout<PresentFrameTokenGGP>::value, "struct wrapper is not a standard layout!" );
65162 
65163   template <>
65164   struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
65165   {
65166     using Type = PresentFrameTokenGGP;
65167   };
65168 #endif /*VK_USE_PLATFORM_GGP*/
65169 
65170   struct PresentInfoKHR
65171   {
65172     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
65173 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR65174     VULKAN_HPP_CONSTEXPR PresentInfoKHR( uint32_t waitSemaphoreCount_ = {},
65175                                          const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {},
65176                                          uint32_t swapchainCount_ = {},
65177                                          const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ = {},
65178                                          const uint32_t* pImageIndices_ = {},
65179                                          VULKAN_HPP_NAMESPACE::Result* pResults_ = {} ) VULKAN_HPP_NOEXCEPT
65180       : waitSemaphoreCount( waitSemaphoreCount_ )
65181       , pWaitSemaphores( pWaitSemaphores_ )
65182       , swapchainCount( swapchainCount_ )
65183       , pSwapchains( pSwapchains_ )
65184       , pImageIndices( pImageIndices_ )
65185       , pResults( pResults_ )
65186     {}
65187 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR65188     PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65189     {
65190       memcpy( &pNext, &rhs.pNext, sizeof( PresentInfoKHR ) - offsetof( PresentInfoKHR, pNext ) );
65191       return *this;
65192     }
65193 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR65194     PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65195     {
65196       *this = rhs;
65197     }
65198 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR65199     PresentInfoKHR& operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65200     {
65201       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>(&rhs);
65202       return *this;
65203     }
65204 
setPNextVULKAN_HPP_NAMESPACE::PresentInfoKHR65205     PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65206     {
65207       pNext = pNext_;
65208       return *this;
65209     }
65210 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::PresentInfoKHR65211     PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
65212     {
65213       waitSemaphoreCount = waitSemaphoreCount_;
65214       return *this;
65215     }
65216 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR65217     PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
65218     {
65219       pWaitSemaphores = pWaitSemaphores_;
65220       return *this;
65221     }
65222 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentInfoKHR65223     PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
65224     {
65225       swapchainCount = swapchainCount_;
65226       return *this;
65227     }
65228 
setPSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR65229     PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT
65230     {
65231       pSwapchains = pSwapchains_;
65232       return *this;
65233     }
65234 
setPImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR65235     PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT
65236     {
65237       pImageIndices = pImageIndices_;
65238       return *this;
65239     }
65240 
setPResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR65241     PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT
65242     {
65243       pResults = pResults_;
65244       return *this;
65245     }
65246 
65247 
operator VkPresentInfoKHR const&VULKAN_HPP_NAMESPACE::PresentInfoKHR65248     operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
65249     {
65250       return *reinterpret_cast<const VkPresentInfoKHR*>( this );
65251     }
65252 
operator VkPresentInfoKHR&VULKAN_HPP_NAMESPACE::PresentInfoKHR65253     operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
65254     {
65255       return *reinterpret_cast<VkPresentInfoKHR*>( this );
65256     }
65257 
65258 
65259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65260     auto operator<=>( PresentInfoKHR const& ) const = default;
65261 #else
operator ==VULKAN_HPP_NAMESPACE::PresentInfoKHR65262     bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65263     {
65264       return ( sType == rhs.sType )
65265           && ( pNext == rhs.pNext )
65266           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
65267           && ( pWaitSemaphores == rhs.pWaitSemaphores )
65268           && ( swapchainCount == rhs.swapchainCount )
65269           && ( pSwapchains == rhs.pSwapchains )
65270           && ( pImageIndices == rhs.pImageIndices )
65271           && ( pResults == rhs.pResults );
65272     }
65273 
operator !=VULKAN_HPP_NAMESPACE::PresentInfoKHR65274     bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65275     {
65276       return !operator==( rhs );
65277     }
65278 #endif
65279 
65280 
65281 
65282   public:
65283     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
65284     const void* pNext = {};
65285     uint32_t waitSemaphoreCount = {};
65286     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
65287     uint32_t swapchainCount = {};
65288     const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {};
65289     const uint32_t* pImageIndices = {};
65290     VULKAN_HPP_NAMESPACE::Result* pResults = {};
65291 
65292   };
65293   static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
65294   static_assert( std::is_standard_layout<PresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
65295 
65296   template <>
65297   struct CppType<StructureType, StructureType::ePresentInfoKHR>
65298   {
65299     using Type = PresentInfoKHR;
65300   };
65301 
65302   struct RectLayerKHR
65303   {
65304 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR65305     VULKAN_HPP_CONSTEXPR RectLayerKHR( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {},
65306                                        VULKAN_HPP_NAMESPACE::Extent2D extent_ = {},
65307                                        uint32_t layer_ = {} ) VULKAN_HPP_NOEXCEPT
65308       : offset( offset_ )
65309       , extent( extent_ )
65310       , layer( layer_ )
65311     {}
65312 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR65313     explicit RectLayerKHR( Rect2D const& rect2D,
65314                            uint32_t layer_ = {} )
65315       : offset( rect2D.offset )
65316       , extent( rect2D.extent )
65317       , layer( layer_ )
65318     {}
65319 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR65320     RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65321     {
65322       *this = rhs;
65323     }
65324 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR65325     RectLayerKHR& operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65326     {
65327       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>(&rhs);
65328       return *this;
65329     }
65330 
setOffsetVULKAN_HPP_NAMESPACE::RectLayerKHR65331     RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
65332     {
65333       offset = offset_;
65334       return *this;
65335     }
65336 
setExtentVULKAN_HPP_NAMESPACE::RectLayerKHR65337     RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
65338     {
65339       extent = extent_;
65340       return *this;
65341     }
65342 
setLayerVULKAN_HPP_NAMESPACE::RectLayerKHR65343     RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
65344     {
65345       layer = layer_;
65346       return *this;
65347     }
65348 
65349 
operator VkRectLayerKHR const&VULKAN_HPP_NAMESPACE::RectLayerKHR65350     operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT
65351     {
65352       return *reinterpret_cast<const VkRectLayerKHR*>( this );
65353     }
65354 
operator VkRectLayerKHR&VULKAN_HPP_NAMESPACE::RectLayerKHR65355     operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
65356     {
65357       return *reinterpret_cast<VkRectLayerKHR*>( this );
65358     }
65359 
65360 
65361 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65362     auto operator<=>( RectLayerKHR const& ) const = default;
65363 #else
operator ==VULKAN_HPP_NAMESPACE::RectLayerKHR65364     bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65365     {
65366       return ( offset == rhs.offset )
65367           && ( extent == rhs.extent )
65368           && ( layer == rhs.layer );
65369     }
65370 
operator !=VULKAN_HPP_NAMESPACE::RectLayerKHR65371     bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65372     {
65373       return !operator==( rhs );
65374     }
65375 #endif
65376 
65377 
65378 
65379   public:
65380     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
65381     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
65382     uint32_t layer = {};
65383 
65384   };
65385   static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
65386   static_assert( std::is_standard_layout<RectLayerKHR>::value, "struct wrapper is not a standard layout!" );
65387 
65388   struct PresentRegionKHR
65389   {
65390 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR65391     VULKAN_HPP_CONSTEXPR PresentRegionKHR( uint32_t rectangleCount_ = {},
65392                                            const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {} ) VULKAN_HPP_NOEXCEPT
65393       : rectangleCount( rectangleCount_ )
65394       , pRectangles( pRectangles_ )
65395     {}
65396 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR65397     PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65398     {
65399       *this = rhs;
65400     }
65401 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR65402     PresentRegionKHR& operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65403     {
65404       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>(&rhs);
65405       return *this;
65406     }
65407 
setRectangleCountVULKAN_HPP_NAMESPACE::PresentRegionKHR65408     PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
65409     {
65410       rectangleCount = rectangleCount_;
65411       return *this;
65412     }
65413 
setPRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR65414     PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT
65415     {
65416       pRectangles = pRectangles_;
65417       return *this;
65418     }
65419 
65420 
operator VkPresentRegionKHR const&VULKAN_HPP_NAMESPACE::PresentRegionKHR65421     operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT
65422     {
65423       return *reinterpret_cast<const VkPresentRegionKHR*>( this );
65424     }
65425 
operator VkPresentRegionKHR&VULKAN_HPP_NAMESPACE::PresentRegionKHR65426     operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
65427     {
65428       return *reinterpret_cast<VkPresentRegionKHR*>( this );
65429     }
65430 
65431 
65432 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65433     auto operator<=>( PresentRegionKHR const& ) const = default;
65434 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionKHR65435     bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65436     {
65437       return ( rectangleCount == rhs.rectangleCount )
65438           && ( pRectangles == rhs.pRectangles );
65439     }
65440 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionKHR65441     bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65442     {
65443       return !operator==( rhs );
65444     }
65445 #endif
65446 
65447 
65448 
65449   public:
65450     uint32_t rectangleCount = {};
65451     const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {};
65452 
65453   };
65454   static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
65455   static_assert( std::is_standard_layout<PresentRegionKHR>::value, "struct wrapper is not a standard layout!" );
65456 
65457   struct PresentRegionsKHR
65458   {
65459     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
65460 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR65461     VULKAN_HPP_CONSTEXPR PresentRegionsKHR( uint32_t swapchainCount_ = {},
65462                                             const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {} ) VULKAN_HPP_NOEXCEPT
65463       : swapchainCount( swapchainCount_ )
65464       , pRegions( pRegions_ )
65465     {}
65466 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR65467     PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65468     {
65469       memcpy( &pNext, &rhs.pNext, sizeof( PresentRegionsKHR ) - offsetof( PresentRegionsKHR, pNext ) );
65470       return *this;
65471     }
65472 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR65473     PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65474     {
65475       *this = rhs;
65476     }
65477 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR65478     PresentRegionsKHR& operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65479     {
65480       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>(&rhs);
65481       return *this;
65482     }
65483 
setPNextVULKAN_HPP_NAMESPACE::PresentRegionsKHR65484     PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65485     {
65486       pNext = pNext_;
65487       return *this;
65488     }
65489 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentRegionsKHR65490     PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
65491     {
65492       swapchainCount = swapchainCount_;
65493       return *this;
65494     }
65495 
setPRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR65496     PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
65497     {
65498       pRegions = pRegions_;
65499       return *this;
65500     }
65501 
65502 
operator VkPresentRegionsKHR const&VULKAN_HPP_NAMESPACE::PresentRegionsKHR65503     operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT
65504     {
65505       return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
65506     }
65507 
operator VkPresentRegionsKHR&VULKAN_HPP_NAMESPACE::PresentRegionsKHR65508     operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
65509     {
65510       return *reinterpret_cast<VkPresentRegionsKHR*>( this );
65511     }
65512 
65513 
65514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65515     auto operator<=>( PresentRegionsKHR const& ) const = default;
65516 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionsKHR65517     bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65518     {
65519       return ( sType == rhs.sType )
65520           && ( pNext == rhs.pNext )
65521           && ( swapchainCount == rhs.swapchainCount )
65522           && ( pRegions == rhs.pRegions );
65523     }
65524 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionsKHR65525     bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65526     {
65527       return !operator==( rhs );
65528     }
65529 #endif
65530 
65531 
65532 
65533   public:
65534     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
65535     const void* pNext = {};
65536     uint32_t swapchainCount = {};
65537     const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {};
65538 
65539   };
65540   static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
65541   static_assert( std::is_standard_layout<PresentRegionsKHR>::value, "struct wrapper is not a standard layout!" );
65542 
65543   template <>
65544   struct CppType<StructureType, StructureType::ePresentRegionsKHR>
65545   {
65546     using Type = PresentRegionsKHR;
65547   };
65548 
65549   struct PresentTimeGOOGLE
65550   {
65551 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65552     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( uint32_t presentID_ = {},
65553                                             uint64_t desiredPresentTime_ = {} ) VULKAN_HPP_NOEXCEPT
65554       : presentID( presentID_ )
65555       , desiredPresentTime( desiredPresentTime_ )
65556     {}
65557 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65558     PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
65559     {
65560       *this = rhs;
65561     }
65562 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65563     PresentTimeGOOGLE& operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
65564     {
65565       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>(&rhs);
65566       return *this;
65567     }
65568 
setPresentIDVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65569     PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
65570     {
65571       presentID = presentID_;
65572       return *this;
65573     }
65574 
setDesiredPresentTimeVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65575     PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
65576     {
65577       desiredPresentTime = desiredPresentTime_;
65578       return *this;
65579     }
65580 
65581 
operator VkPresentTimeGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65582     operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT
65583     {
65584       return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
65585     }
65586 
operator VkPresentTimeGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65587     operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
65588     {
65589       return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
65590     }
65591 
65592 
65593 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65594     auto operator<=>( PresentTimeGOOGLE const& ) const = default;
65595 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65596     bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
65597     {
65598       return ( presentID == rhs.presentID )
65599           && ( desiredPresentTime == rhs.desiredPresentTime );
65600     }
65601 
operator !=VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE65602     bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
65603     {
65604       return !operator==( rhs );
65605     }
65606 #endif
65607 
65608 
65609 
65610   public:
65611     uint32_t presentID = {};
65612     uint64_t desiredPresentTime = {};
65613 
65614   };
65615   static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" );
65616   static_assert( std::is_standard_layout<PresentTimeGOOGLE>::value, "struct wrapper is not a standard layout!" );
65617 
65618   struct PresentTimesInfoGOOGLE
65619   {
65620     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
65621 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65622     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = {},
65623                                                  const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {} ) VULKAN_HPP_NOEXCEPT
65624       : swapchainCount( swapchainCount_ )
65625       , pTimes( pTimes_ )
65626     {}
65627 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65628     PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
65629     {
65630       memcpy( &pNext, &rhs.pNext, sizeof( PresentTimesInfoGOOGLE ) - offsetof( PresentTimesInfoGOOGLE, pNext ) );
65631       return *this;
65632     }
65633 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65634     PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
65635     {
65636       *this = rhs;
65637     }
65638 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65639     PresentTimesInfoGOOGLE& operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
65640     {
65641       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>(&rhs);
65642       return *this;
65643     }
65644 
setPNextVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65645     PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65646     {
65647       pNext = pNext_;
65648       return *this;
65649     }
65650 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65651     PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
65652     {
65653       swapchainCount = swapchainCount_;
65654       return *this;
65655     }
65656 
setPTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65657     PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT
65658     {
65659       pTimes = pTimes_;
65660       return *this;
65661     }
65662 
65663 
operator VkPresentTimesInfoGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65664     operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT
65665     {
65666       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
65667     }
65668 
operator VkPresentTimesInfoGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65669     operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
65670     {
65671       return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
65672     }
65673 
65674 
65675 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65676     auto operator<=>( PresentTimesInfoGOOGLE const& ) const = default;
65677 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65678     bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
65679     {
65680       return ( sType == rhs.sType )
65681           && ( pNext == rhs.pNext )
65682           && ( swapchainCount == rhs.swapchainCount )
65683           && ( pTimes == rhs.pTimes );
65684     }
65685 
operator !=VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE65686     bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
65687     {
65688       return !operator==( rhs );
65689     }
65690 #endif
65691 
65692 
65693 
65694   public:
65695     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
65696     const void* pNext = {};
65697     uint32_t swapchainCount = {};
65698     const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {};
65699 
65700   };
65701   static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" );
65702   static_assert( std::is_standard_layout<PresentTimesInfoGOOGLE>::value, "struct wrapper is not a standard layout!" );
65703 
65704   template <>
65705   struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
65706   {
65707     using Type = PresentTimesInfoGOOGLE;
65708   };
65709 
65710   struct PrivateDataSlotCreateInfoEXT
65711   {
65712     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT;
65713 
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65714     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {} ) VULKAN_HPP_NOEXCEPT
65715       : flags( flags_ )
65716     {}
65717 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65718     PrivateDataSlotCreateInfoEXT & operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65719     {
65720       memcpy( &pNext, &rhs.pNext, sizeof( PrivateDataSlotCreateInfoEXT ) - offsetof( PrivateDataSlotCreateInfoEXT, pNext ) );
65721       return *this;
65722     }
65723 
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65724     PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65725     {
65726       *this = rhs;
65727     }
65728 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65729     PrivateDataSlotCreateInfoEXT& operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65730     {
65731       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const *>(&rhs);
65732       return *this;
65733     }
65734 
setPNextVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65735     PrivateDataSlotCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65736     {
65737       pNext = pNext_;
65738       return *this;
65739     }
65740 
setFlagsVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65741     PrivateDataSlotCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
65742     {
65743       flags = flags_;
65744       return *this;
65745     }
65746 
65747 
operator VkPrivateDataSlotCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65748     operator VkPrivateDataSlotCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
65749     {
65750       return *reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( this );
65751     }
65752 
operator VkPrivateDataSlotCreateInfoEXT&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65753     operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
65754     {
65755       return *reinterpret_cast<VkPrivateDataSlotCreateInfoEXT*>( this );
65756     }
65757 
65758 
65759 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65760     auto operator<=>( PrivateDataSlotCreateInfoEXT const& ) const = default;
65761 #else
operator ==VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65762     bool operator==( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65763     {
65764       return ( sType == rhs.sType )
65765           && ( pNext == rhs.pNext )
65766           && ( flags == rhs.flags );
65767     }
65768 
operator !=VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT65769     bool operator!=( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65770     {
65771       return !operator==( rhs );
65772     }
65773 #endif
65774 
65775 
65776 
65777   public:
65778     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT;
65779     const void* pNext = {};
65780     VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {};
65781 
65782   };
65783   static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), "struct and wrapper have different size!" );
65784   static_assert( std::is_standard_layout<PrivateDataSlotCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
65785 
65786   template <>
65787   struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfoEXT>
65788   {
65789     using Type = PrivateDataSlotCreateInfoEXT;
65790   };
65791 
65792   struct ProtectedSubmitInfo
65793   {
65794     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
65795 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65796     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {} ) VULKAN_HPP_NOEXCEPT
65797       : protectedSubmit( protectedSubmit_ )
65798     {}
65799 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65800     ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
65801     {
65802       memcpy( &pNext, &rhs.pNext, sizeof( ProtectedSubmitInfo ) - offsetof( ProtectedSubmitInfo, pNext ) );
65803       return *this;
65804     }
65805 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65806     ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
65807     {
65808       *this = rhs;
65809     }
65810 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65811     ProtectedSubmitInfo& operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
65812     {
65813       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>(&rhs);
65814       return *this;
65815     }
65816 
setPNextVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65817     ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65818     {
65819       pNext = pNext_;
65820       return *this;
65821     }
65822 
setProtectedSubmitVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65823     ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
65824     {
65825       protectedSubmit = protectedSubmit_;
65826       return *this;
65827     }
65828 
65829 
operator VkProtectedSubmitInfo const&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65830     operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
65831     {
65832       return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
65833     }
65834 
operator VkProtectedSubmitInfo&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65835     operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
65836     {
65837       return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
65838     }
65839 
65840 
65841 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65842     auto operator<=>( ProtectedSubmitInfo const& ) const = default;
65843 #else
operator ==VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65844     bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
65845     {
65846       return ( sType == rhs.sType )
65847           && ( pNext == rhs.pNext )
65848           && ( protectedSubmit == rhs.protectedSubmit );
65849     }
65850 
operator !=VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo65851     bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
65852     {
65853       return !operator==( rhs );
65854     }
65855 #endif
65856 
65857 
65858 
65859   public:
65860     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
65861     const void* pNext = {};
65862     VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
65863 
65864   };
65865   static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" );
65866   static_assert( std::is_standard_layout<ProtectedSubmitInfo>::value, "struct wrapper is not a standard layout!" );
65867 
65868   template <>
65869   struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
65870   {
65871     using Type = ProtectedSubmitInfo;
65872   };
65873 
65874   struct QueryPoolCreateInfo
65875   {
65876     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
65877 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65878     VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {},
65879                                               VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion,
65880                                               uint32_t queryCount_ = {},
65881                                               VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {} ) VULKAN_HPP_NOEXCEPT
65882       : flags( flags_ )
65883       , queryType( queryType_ )
65884       , queryCount( queryCount_ )
65885       , pipelineStatistics( pipelineStatistics_ )
65886     {}
65887 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65888     QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
65889     {
65890       memcpy( &pNext, &rhs.pNext, sizeof( QueryPoolCreateInfo ) - offsetof( QueryPoolCreateInfo, pNext ) );
65891       return *this;
65892     }
65893 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65894     QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
65895     {
65896       *this = rhs;
65897     }
65898 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65899     QueryPoolCreateInfo& operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
65900     {
65901       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>(&rhs);
65902       return *this;
65903     }
65904 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65905     QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65906     {
65907       pNext = pNext_;
65908       return *this;
65909     }
65910 
setFlagsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65911     QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
65912     {
65913       flags = flags_;
65914       return *this;
65915     }
65916 
setQueryTypeVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65917     QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
65918     {
65919       queryType = queryType_;
65920       return *this;
65921     }
65922 
setQueryCountVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65923     QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
65924     {
65925       queryCount = queryCount_;
65926       return *this;
65927     }
65928 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65929     QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
65930     {
65931       pipelineStatistics = pipelineStatistics_;
65932       return *this;
65933     }
65934 
65935 
operator VkQueryPoolCreateInfo const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65936     operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
65937     {
65938       return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
65939     }
65940 
operator VkQueryPoolCreateInfo&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65941     operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
65942     {
65943       return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
65944     }
65945 
65946 
65947 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65948     auto operator<=>( QueryPoolCreateInfo const& ) const = default;
65949 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65950     bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
65951     {
65952       return ( sType == rhs.sType )
65953           && ( pNext == rhs.pNext )
65954           && ( flags == rhs.flags )
65955           && ( queryType == rhs.queryType )
65956           && ( queryCount == rhs.queryCount )
65957           && ( pipelineStatistics == rhs.pipelineStatistics );
65958     }
65959 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo65960     bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
65961     {
65962       return !operator==( rhs );
65963     }
65964 #endif
65965 
65966 
65967 
65968   public:
65969     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
65970     const void* pNext = {};
65971     VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
65972     VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
65973     uint32_t queryCount = {};
65974     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
65975 
65976   };
65977   static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
65978   static_assert( std::is_standard_layout<QueryPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
65979 
65980   template <>
65981   struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
65982   {
65983     using Type = QueryPoolCreateInfo;
65984   };
65985 
65986   struct QueryPoolPerformanceCreateInfoKHR
65987   {
65988     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
65989 
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR65990     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_ = {},
65991                                                             uint32_t counterIndexCount_ = {},
65992                                                             const uint32_t* pCounterIndices_ = {} ) VULKAN_HPP_NOEXCEPT
65993       : queueFamilyIndex( queueFamilyIndex_ )
65994       , counterIndexCount( counterIndexCount_ )
65995       , pCounterIndices( pCounterIndices_ )
65996     {}
65997 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR65998     QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65999     {
66000       memcpy( &pNext, &rhs.pNext, sizeof( QueryPoolPerformanceCreateInfoKHR ) - offsetof( QueryPoolPerformanceCreateInfoKHR, pNext ) );
66001       return *this;
66002     }
66003 
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66004     QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66005     {
66006       *this = rhs;
66007     }
66008 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66009     QueryPoolPerformanceCreateInfoKHR& operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66010     {
66011       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>(&rhs);
66012       return *this;
66013     }
66014 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66015     QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66016     {
66017       pNext = pNext_;
66018       return *this;
66019     }
66020 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66021     QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
66022     {
66023       queueFamilyIndex = queueFamilyIndex_;
66024       return *this;
66025     }
66026 
setCounterIndexCountVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66027     QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
66028     {
66029       counterIndexCount = counterIndexCount_;
66030       return *this;
66031     }
66032 
setPCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66033     QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
66034     {
66035       pCounterIndices = pCounterIndices_;
66036       return *this;
66037     }
66038 
66039 
operator VkQueryPoolPerformanceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66040     operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
66041     {
66042       return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( this );
66043     }
66044 
operator VkQueryPoolPerformanceCreateInfoKHR&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66045     operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
66046     {
66047       return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>( this );
66048     }
66049 
66050 
66051 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66052     auto operator<=>( QueryPoolPerformanceCreateInfoKHR const& ) const = default;
66053 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66054     bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66055     {
66056       return ( sType == rhs.sType )
66057           && ( pNext == rhs.pNext )
66058           && ( queueFamilyIndex == rhs.queueFamilyIndex )
66059           && ( counterIndexCount == rhs.counterIndexCount )
66060           && ( pCounterIndices == rhs.pCounterIndices );
66061     }
66062 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR66063     bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66064     {
66065       return !operator==( rhs );
66066     }
66067 #endif
66068 
66069 
66070 
66071   public:
66072     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
66073     const void* pNext = {};
66074     uint32_t queueFamilyIndex = {};
66075     uint32_t counterIndexCount = {};
66076     const uint32_t* pCounterIndices = {};
66077 
66078   };
66079   static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" );
66080   static_assert( std::is_standard_layout<QueryPoolPerformanceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
66081 
66082   template <>
66083   struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
66084   {
66085     using Type = QueryPoolPerformanceCreateInfoKHR;
66086   };
66087 
66088   struct QueryPoolPerformanceQueryCreateInfoINTEL
66089   {
66090     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
66091 
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66092     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual ) VULKAN_HPP_NOEXCEPT
66093       : performanceCountersSampling( performanceCountersSampling_ )
66094     {}
66095 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66096     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
66097     {
66098       memcpy( &pNext, &rhs.pNext, sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) - offsetof( QueryPoolPerformanceQueryCreateInfoINTEL, pNext ) );
66099       return *this;
66100     }
66101 
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66102     QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
66103     {
66104       *this = rhs;
66105     }
66106 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66107     QueryPoolPerformanceQueryCreateInfoINTEL& operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
66108     {
66109       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>(&rhs);
66110       return *this;
66111     }
66112 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66113     QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66114     {
66115       pNext = pNext_;
66116       return *this;
66117     }
66118 
setPerformanceCountersSamplingVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66119     QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
66120     {
66121       performanceCountersSampling = performanceCountersSampling_;
66122       return *this;
66123     }
66124 
66125 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66126     operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
66127     {
66128       return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
66129     }
66130 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66131     operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
66132     {
66133       return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
66134     }
66135 
66136 
66137 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66138     auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const& ) const = default;
66139 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66140     bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
66141     {
66142       return ( sType == rhs.sType )
66143           && ( pNext == rhs.pNext )
66144           && ( performanceCountersSampling == rhs.performanceCountersSampling );
66145     }
66146 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL66147     bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
66148     {
66149       return !operator==( rhs );
66150     }
66151 #endif
66152 
66153 
66154 
66155   public:
66156     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
66157     const void* pNext = {};
66158     VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
66159 
66160   };
66161   static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), "struct and wrapper have different size!" );
66162   static_assert( std::is_standard_layout<QueryPoolPerformanceQueryCreateInfoINTEL>::value, "struct wrapper is not a standard layout!" );
66163 
66164   template <>
66165   struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
66166   {
66167     using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
66168   };
66169 
66170   struct QueueFamilyCheckpointPropertiesNV
66171   {
66172     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
66173 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66174     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {} ) VULKAN_HPP_NOEXCEPT
66175       : checkpointExecutionStageMask( checkpointExecutionStageMask_ )
66176     {}
66177 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66178     QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66179     {
66180       memcpy( &pNext, &rhs.pNext, sizeof( QueueFamilyCheckpointPropertiesNV ) - offsetof( QueueFamilyCheckpointPropertiesNV, pNext ) );
66181       return *this;
66182     }
66183 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66184     QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66185     {
66186       *this = rhs;
66187     }
66188 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66189     QueueFamilyCheckpointPropertiesNV& operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66190     {
66191       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>(&rhs);
66192       return *this;
66193     }
66194 
66195 
operator VkQueueFamilyCheckpointPropertiesNV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66196     operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
66197     {
66198       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
66199     }
66200 
operator VkQueueFamilyCheckpointPropertiesNV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66201     operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
66202     {
66203       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
66204     }
66205 
66206 
66207 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66208     auto operator<=>( QueueFamilyCheckpointPropertiesNV const& ) const = default;
66209 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66210     bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66211     {
66212       return ( sType == rhs.sType )
66213           && ( pNext == rhs.pNext )
66214           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
66215     }
66216 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV66217     bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66218     {
66219       return !operator==( rhs );
66220     }
66221 #endif
66222 
66223 
66224 
66225   public:
66226     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
66227     void* pNext = {};
66228     VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
66229 
66230   };
66231   static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" );
66232   static_assert( std::is_standard_layout<QueueFamilyCheckpointPropertiesNV>::value, "struct wrapper is not a standard layout!" );
66233 
66234   template <>
66235   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
66236   {
66237     using Type = QueueFamilyCheckpointPropertiesNV;
66238   };
66239 
66240   struct QueueFamilyProperties
66241   {
66242 
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties66243     VULKAN_HPP_CONSTEXPR QueueFamilyProperties( VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {},
66244                                                 uint32_t queueCount_ = {},
66245                                                 uint32_t timestampValidBits_ = {},
66246                                                 VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {} ) VULKAN_HPP_NOEXCEPT
66247       : queueFlags( queueFlags_ )
66248       , queueCount( queueCount_ )
66249       , timestampValidBits( timestampValidBits_ )
66250       , minImageTransferGranularity( minImageTransferGranularity_ )
66251     {}
66252 
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties66253     QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66254     {
66255       *this = rhs;
66256     }
66257 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties66258     QueueFamilyProperties& operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66259     {
66260       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>(&rhs);
66261       return *this;
66262     }
66263 
66264 
operator VkQueueFamilyProperties const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties66265     operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT
66266     {
66267       return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
66268     }
66269 
operator VkQueueFamilyProperties&VULKAN_HPP_NAMESPACE::QueueFamilyProperties66270     operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
66271     {
66272       return *reinterpret_cast<VkQueueFamilyProperties*>( this );
66273     }
66274 
66275 
66276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66277     auto operator<=>( QueueFamilyProperties const& ) const = default;
66278 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties66279     bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66280     {
66281       return ( queueFlags == rhs.queueFlags )
66282           && ( queueCount == rhs.queueCount )
66283           && ( timestampValidBits == rhs.timestampValidBits )
66284           && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
66285     }
66286 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties66287     bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66288     {
66289       return !operator==( rhs );
66290     }
66291 #endif
66292 
66293 
66294 
66295   public:
66296     VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
66297     uint32_t queueCount = {};
66298     uint32_t timestampValidBits = {};
66299     VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
66300 
66301   };
66302   static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" );
66303   static_assert( std::is_standard_layout<QueueFamilyProperties>::value, "struct wrapper is not a standard layout!" );
66304 
66305   struct QueueFamilyProperties2
66306   {
66307     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
66308 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties266309     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {} ) VULKAN_HPP_NOEXCEPT
66310       : queueFamilyProperties( queueFamilyProperties_ )
66311     {}
66312 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties266313     QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
66314     {
66315       memcpy( &pNext, &rhs.pNext, sizeof( QueueFamilyProperties2 ) - offsetof( QueueFamilyProperties2, pNext ) );
66316       return *this;
66317     }
66318 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties266319     QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
66320     {
66321       *this = rhs;
66322     }
66323 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties266324     QueueFamilyProperties2& operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
66325     {
66326       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>(&rhs);
66327       return *this;
66328     }
66329 
66330 
operator VkQueueFamilyProperties2 const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties266331     operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT
66332     {
66333       return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
66334     }
66335 
operator VkQueueFamilyProperties2&VULKAN_HPP_NAMESPACE::QueueFamilyProperties266336     operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
66337     {
66338       return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
66339     }
66340 
66341 
66342 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66343     auto operator<=>( QueueFamilyProperties2 const& ) const = default;
66344 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties266345     bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
66346     {
66347       return ( sType == rhs.sType )
66348           && ( pNext == rhs.pNext )
66349           && ( queueFamilyProperties == rhs.queueFamilyProperties );
66350     }
66351 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties266352     bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
66353     {
66354       return !operator==( rhs );
66355     }
66356 #endif
66357 
66358 
66359 
66360   public:
66361     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
66362     void* pNext = {};
66363     VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
66364 
66365   };
66366   static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" );
66367   static_assert( std::is_standard_layout<QueueFamilyProperties2>::value, "struct wrapper is not a standard layout!" );
66368 
66369   template <>
66370   struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
66371   {
66372     using Type = QueueFamilyProperties2;
66373   };
66374 
66375 #ifdef VK_ENABLE_BETA_EXTENSIONS
66376   struct RayTracingShaderGroupCreateInfoKHR
66377   {
66378     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
66379 
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66380     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
66381                                                              uint32_t generalShader_ = {},
66382                                                              uint32_t closestHitShader_ = {},
66383                                                              uint32_t anyHitShader_ = {},
66384                                                              uint32_t intersectionShader_ = {},
66385                                                              const void* pShaderGroupCaptureReplayHandle_ = {} ) VULKAN_HPP_NOEXCEPT
66386       : type( type_ )
66387       , generalShader( generalShader_ )
66388       , closestHitShader( closestHitShader_ )
66389       , anyHitShader( anyHitShader_ )
66390       , intersectionShader( intersectionShader_ )
66391       , pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
66392     {}
66393 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66394     RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66395     {
66396       memcpy( &pNext, &rhs.pNext, sizeof( RayTracingShaderGroupCreateInfoKHR ) - offsetof( RayTracingShaderGroupCreateInfoKHR, pNext ) );
66397       return *this;
66398     }
66399 
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66400     RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66401     {
66402       *this = rhs;
66403     }
66404 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66405     RayTracingShaderGroupCreateInfoKHR& operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66406     {
66407       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>(&rhs);
66408       return *this;
66409     }
66410 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66411     RayTracingShaderGroupCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66412     {
66413       pNext = pNext_;
66414       return *this;
66415     }
66416 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66417     RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
66418     {
66419       type = type_;
66420       return *this;
66421     }
66422 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66423     RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
66424     {
66425       generalShader = generalShader_;
66426       return *this;
66427     }
66428 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66429     RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
66430     {
66431       closestHitShader = closestHitShader_;
66432       return *this;
66433     }
66434 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66435     RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
66436     {
66437       anyHitShader = anyHitShader_;
66438       return *this;
66439     }
66440 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66441     RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
66442     {
66443       intersectionShader = intersectionShader_;
66444       return *this;
66445     }
66446 
setPShaderGroupCaptureReplayHandleVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66447     RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void* pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
66448     {
66449       pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
66450       return *this;
66451     }
66452 
66453 
operator VkRayTracingShaderGroupCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66454     operator VkRayTracingShaderGroupCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
66455     {
66456       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR*>( this );
66457     }
66458 
operator VkRayTracingShaderGroupCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66459     operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
66460     {
66461       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR*>( this );
66462     }
66463 
66464 
66465 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66466     auto operator<=>( RayTracingShaderGroupCreateInfoKHR const& ) const = default;
66467 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66468     bool operator==( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66469     {
66470       return ( sType == rhs.sType )
66471           && ( pNext == rhs.pNext )
66472           && ( type == rhs.type )
66473           && ( generalShader == rhs.generalShader )
66474           && ( closestHitShader == rhs.closestHitShader )
66475           && ( anyHitShader == rhs.anyHitShader )
66476           && ( intersectionShader == rhs.intersectionShader )
66477           && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
66478     }
66479 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR66480     bool operator!=( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66481     {
66482       return !operator==( rhs );
66483     }
66484 #endif
66485 
66486 
66487 
66488   public:
66489     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
66490     const void* pNext = {};
66491     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
66492     uint32_t generalShader = {};
66493     uint32_t closestHitShader = {};
66494     uint32_t anyHitShader = {};
66495     uint32_t intersectionShader = {};
66496     const void* pShaderGroupCaptureReplayHandle = {};
66497 
66498   };
66499   static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), "struct and wrapper have different size!" );
66500   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
66501 
66502   template <>
66503   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
66504   {
66505     using Type = RayTracingShaderGroupCreateInfoKHR;
66506   };
66507 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
66508 
66509 #ifdef VK_ENABLE_BETA_EXTENSIONS
66510   struct RayTracingPipelineInterfaceCreateInfoKHR
66511   {
66512     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
66513 
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66514     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( uint32_t maxPayloadSize_ = {},
66515                                                                    uint32_t maxAttributeSize_ = {},
66516                                                                    uint32_t maxCallableSize_ = {} ) VULKAN_HPP_NOEXCEPT
66517       : maxPayloadSize( maxPayloadSize_ )
66518       , maxAttributeSize( maxAttributeSize_ )
66519       , maxCallableSize( maxCallableSize_ )
66520     {}
66521 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66522     RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66523     {
66524       memcpy( &pNext, &rhs.pNext, sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) - offsetof( RayTracingPipelineInterfaceCreateInfoKHR, pNext ) );
66525       return *this;
66526     }
66527 
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66528     RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66529     {
66530       *this = rhs;
66531     }
66532 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66533     RayTracingPipelineInterfaceCreateInfoKHR& operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66534     {
66535       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>(&rhs);
66536       return *this;
66537     }
66538 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66539     RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66540     {
66541       pNext = pNext_;
66542       return *this;
66543     }
66544 
setMaxPayloadSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66545     RayTracingPipelineInterfaceCreateInfoKHR & setMaxPayloadSize( uint32_t maxPayloadSize_ ) VULKAN_HPP_NOEXCEPT
66546     {
66547       maxPayloadSize = maxPayloadSize_;
66548       return *this;
66549     }
66550 
setMaxAttributeSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66551     RayTracingPipelineInterfaceCreateInfoKHR & setMaxAttributeSize( uint32_t maxAttributeSize_ ) VULKAN_HPP_NOEXCEPT
66552     {
66553       maxAttributeSize = maxAttributeSize_;
66554       return *this;
66555     }
66556 
setMaxCallableSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66557     RayTracingPipelineInterfaceCreateInfoKHR & setMaxCallableSize( uint32_t maxCallableSize_ ) VULKAN_HPP_NOEXCEPT
66558     {
66559       maxCallableSize = maxCallableSize_;
66560       return *this;
66561     }
66562 
66563 
operator VkRayTracingPipelineInterfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66564     operator VkRayTracingPipelineInterfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
66565     {
66566       return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
66567     }
66568 
operator VkRayTracingPipelineInterfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66569     operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
66570     {
66571       return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
66572     }
66573 
66574 
66575 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66576     auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const& ) const = default;
66577 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66578     bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66579     {
66580       return ( sType == rhs.sType )
66581           && ( pNext == rhs.pNext )
66582           && ( maxPayloadSize == rhs.maxPayloadSize )
66583           && ( maxAttributeSize == rhs.maxAttributeSize )
66584           && ( maxCallableSize == rhs.maxCallableSize );
66585     }
66586 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR66587     bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66588     {
66589       return !operator==( rhs );
66590     }
66591 #endif
66592 
66593 
66594 
66595   public:
66596     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
66597     const void* pNext = {};
66598     uint32_t maxPayloadSize = {};
66599     uint32_t maxAttributeSize = {};
66600     uint32_t maxCallableSize = {};
66601 
66602   };
66603   static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), "struct and wrapper have different size!" );
66604   static_assert( std::is_standard_layout<RayTracingPipelineInterfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
66605 
66606   template <>
66607   struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
66608   {
66609     using Type = RayTracingPipelineInterfaceCreateInfoKHR;
66610   };
66611 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
66612 
66613 #ifdef VK_ENABLE_BETA_EXTENSIONS
66614   struct RayTracingPipelineCreateInfoKHR
66615   {
66616     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
66617 
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66618     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
66619                                                           uint32_t stageCount_ = {},
66620                                                           const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {},
66621                                                           uint32_t groupCount_ = {},
66622                                                           const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ = {},
66623                                                           uint32_t maxRecursionDepth_ = {},
66624                                                           VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries_ = {},
66625                                                           const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {},
66626                                                           VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
66627                                                           VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
66628                                                           int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT
66629       : flags( flags_ )
66630       , stageCount( stageCount_ )
66631       , pStages( pStages_ )
66632       , groupCount( groupCount_ )
66633       , pGroups( pGroups_ )
66634       , maxRecursionDepth( maxRecursionDepth_ )
66635       , libraries( libraries_ )
66636       , pLibraryInterface( pLibraryInterface_ )
66637       , layout( layout_ )
66638       , basePipelineHandle( basePipelineHandle_ )
66639       , basePipelineIndex( basePipelineIndex_ )
66640     {}
66641 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66642     RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66643     {
66644       memcpy( &pNext, &rhs.pNext, sizeof( RayTracingPipelineCreateInfoKHR ) - offsetof( RayTracingPipelineCreateInfoKHR, pNext ) );
66645       return *this;
66646     }
66647 
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66648     RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66649     {
66650       *this = rhs;
66651     }
66652 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66653     RayTracingPipelineCreateInfoKHR& operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66654     {
66655       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>(&rhs);
66656       return *this;
66657     }
66658 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66659     RayTracingPipelineCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66660     {
66661       pNext = pNext_;
66662       return *this;
66663     }
66664 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66665     RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
66666     {
66667       flags = flags_;
66668       return *this;
66669     }
66670 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66671     RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
66672     {
66673       stageCount = stageCount_;
66674       return *this;
66675     }
66676 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66677     RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
66678     {
66679       pStages = pStages_;
66680       return *this;
66681     }
66682 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66683     RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
66684     {
66685       groupCount = groupCount_;
66686       return *this;
66687     }
66688 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66689     RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ ) VULKAN_HPP_NOEXCEPT
66690     {
66691       pGroups = pGroups_;
66692       return *this;
66693     }
66694 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66695     RayTracingPipelineCreateInfoKHR & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
66696     {
66697       maxRecursionDepth = maxRecursionDepth_;
66698       return *this;
66699     }
66700 
setLibrariesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66701     RayTracingPipelineCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & libraries_ ) VULKAN_HPP_NOEXCEPT
66702     {
66703       libraries = libraries_;
66704       return *this;
66705     }
66706 
setPLibraryInterfaceVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66707     RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
66708     {
66709       pLibraryInterface = pLibraryInterface_;
66710       return *this;
66711     }
66712 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66713     RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
66714     {
66715       layout = layout_;
66716       return *this;
66717     }
66718 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66719     RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
66720     {
66721       basePipelineHandle = basePipelineHandle_;
66722       return *this;
66723     }
66724 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66725     RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
66726     {
66727       basePipelineIndex = basePipelineIndex_;
66728       return *this;
66729     }
66730 
66731 
operator VkRayTracingPipelineCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66732     operator VkRayTracingPipelineCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
66733     {
66734       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( this );
66735     }
66736 
operator VkRayTracingPipelineCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66737     operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
66738     {
66739       return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR*>( this );
66740     }
66741 
66742 
66743 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66744     auto operator<=>( RayTracingPipelineCreateInfoKHR const& ) const = default;
66745 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66746     bool operator==( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66747     {
66748       return ( sType == rhs.sType )
66749           && ( pNext == rhs.pNext )
66750           && ( flags == rhs.flags )
66751           && ( stageCount == rhs.stageCount )
66752           && ( pStages == rhs.pStages )
66753           && ( groupCount == rhs.groupCount )
66754           && ( pGroups == rhs.pGroups )
66755           && ( maxRecursionDepth == rhs.maxRecursionDepth )
66756           && ( libraries == rhs.libraries )
66757           && ( pLibraryInterface == rhs.pLibraryInterface )
66758           && ( layout == rhs.layout )
66759           && ( basePipelineHandle == rhs.basePipelineHandle )
66760           && ( basePipelineIndex == rhs.basePipelineIndex );
66761     }
66762 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR66763     bool operator!=( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66764     {
66765       return !operator==( rhs );
66766     }
66767 #endif
66768 
66769 
66770 
66771   public:
66772     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
66773     const void* pNext = {};
66774     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
66775     uint32_t stageCount = {};
66776     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
66777     uint32_t groupCount = {};
66778     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups = {};
66779     uint32_t maxRecursionDepth = {};
66780     VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries = {};
66781     const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface = {};
66782     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
66783     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
66784     int32_t basePipelineIndex = {};
66785 
66786   };
66787   static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), "struct and wrapper have different size!" );
66788   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
66789 
66790   template <>
66791   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
66792   {
66793     using Type = RayTracingPipelineCreateInfoKHR;
66794   };
66795 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
66796 
66797   struct RayTracingShaderGroupCreateInfoNV
66798   {
66799     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
66800 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66801     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
66802                                                             uint32_t generalShader_ = {},
66803                                                             uint32_t closestHitShader_ = {},
66804                                                             uint32_t anyHitShader_ = {},
66805                                                             uint32_t intersectionShader_ = {} ) VULKAN_HPP_NOEXCEPT
66806       : type( type_ )
66807       , generalShader( generalShader_ )
66808       , closestHitShader( closestHitShader_ )
66809       , anyHitShader( anyHitShader_ )
66810       , intersectionShader( intersectionShader_ )
66811     {}
66812 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66813     RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
66814     {
66815       memcpy( &pNext, &rhs.pNext, sizeof( RayTracingShaderGroupCreateInfoNV ) - offsetof( RayTracingShaderGroupCreateInfoNV, pNext ) );
66816       return *this;
66817     }
66818 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66819     RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
66820     {
66821       *this = rhs;
66822     }
66823 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66824     RayTracingShaderGroupCreateInfoNV& operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
66825     {
66826       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>(&rhs);
66827       return *this;
66828     }
66829 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66830     RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66831     {
66832       pNext = pNext_;
66833       return *this;
66834     }
66835 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66836     RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
66837     {
66838       type = type_;
66839       return *this;
66840     }
66841 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66842     RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
66843     {
66844       generalShader = generalShader_;
66845       return *this;
66846     }
66847 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66848     RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
66849     {
66850       closestHitShader = closestHitShader_;
66851       return *this;
66852     }
66853 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66854     RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
66855     {
66856       anyHitShader = anyHitShader_;
66857       return *this;
66858     }
66859 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66860     RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
66861     {
66862       intersectionShader = intersectionShader_;
66863       return *this;
66864     }
66865 
66866 
operator VkRayTracingShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66867     operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
66868     {
66869       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
66870     }
66871 
operator VkRayTracingShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66872     operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
66873     {
66874       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
66875     }
66876 
66877 
66878 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66879     auto operator<=>( RayTracingShaderGroupCreateInfoNV const& ) const = default;
66880 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66881     bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66882     {
66883       return ( sType == rhs.sType )
66884           && ( pNext == rhs.pNext )
66885           && ( type == rhs.type )
66886           && ( generalShader == rhs.generalShader )
66887           && ( closestHitShader == rhs.closestHitShader )
66888           && ( anyHitShader == rhs.anyHitShader )
66889           && ( intersectionShader == rhs.intersectionShader );
66890     }
66891 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV66892     bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66893     {
66894       return !operator==( rhs );
66895     }
66896 #endif
66897 
66898 
66899 
66900   public:
66901     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
66902     const void* pNext = {};
66903     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
66904     uint32_t generalShader = {};
66905     uint32_t closestHitShader = {};
66906     uint32_t anyHitShader = {};
66907     uint32_t intersectionShader = {};
66908 
66909   };
66910   static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
66911   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
66912 
66913   template <>
66914   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
66915   {
66916     using Type = RayTracingShaderGroupCreateInfoNV;
66917   };
66918 
66919   struct RayTracingPipelineCreateInfoNV
66920   {
66921     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
66922 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66923     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
66924                                                          uint32_t stageCount_ = {},
66925                                                          const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {},
66926                                                          uint32_t groupCount_ = {},
66927                                                          const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ = {},
66928                                                          uint32_t maxRecursionDepth_ = {},
66929                                                          VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
66930                                                          VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
66931                                                          int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT
66932       : flags( flags_ )
66933       , stageCount( stageCount_ )
66934       , pStages( pStages_ )
66935       , groupCount( groupCount_ )
66936       , pGroups( pGroups_ )
66937       , maxRecursionDepth( maxRecursionDepth_ )
66938       , layout( layout_ )
66939       , basePipelineHandle( basePipelineHandle_ )
66940       , basePipelineIndex( basePipelineIndex_ )
66941     {}
66942 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66943     RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
66944     {
66945       memcpy( &pNext, &rhs.pNext, sizeof( RayTracingPipelineCreateInfoNV ) - offsetof( RayTracingPipelineCreateInfoNV, pNext ) );
66946       return *this;
66947     }
66948 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66949     RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
66950     {
66951       *this = rhs;
66952     }
66953 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66954     RayTracingPipelineCreateInfoNV& operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
66955     {
66956       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>(&rhs);
66957       return *this;
66958     }
66959 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66960     RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66961     {
66962       pNext = pNext_;
66963       return *this;
66964     }
66965 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66966     RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
66967     {
66968       flags = flags_;
66969       return *this;
66970     }
66971 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66972     RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
66973     {
66974       stageCount = stageCount_;
66975       return *this;
66976     }
66977 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66978     RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
66979     {
66980       pStages = pStages_;
66981       return *this;
66982     }
66983 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66984     RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
66985     {
66986       groupCount = groupCount_;
66987       return *this;
66988     }
66989 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66990     RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
66991     {
66992       pGroups = pGroups_;
66993       return *this;
66994     }
66995 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV66996     RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
66997     {
66998       maxRecursionDepth = maxRecursionDepth_;
66999       return *this;
67000     }
67001 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV67002     RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
67003     {
67004       layout = layout_;
67005       return *this;
67006     }
67007 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV67008     RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
67009     {
67010       basePipelineHandle = basePipelineHandle_;
67011       return *this;
67012     }
67013 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV67014     RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
67015     {
67016       basePipelineIndex = basePipelineIndex_;
67017       return *this;
67018     }
67019 
67020 
operator VkRayTracingPipelineCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV67021     operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
67022     {
67023       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
67024     }
67025 
operator VkRayTracingPipelineCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV67026     operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
67027     {
67028       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
67029     }
67030 
67031 
67032 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67033     auto operator<=>( RayTracingPipelineCreateInfoNV const& ) const = default;
67034 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV67035     bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67036     {
67037       return ( sType == rhs.sType )
67038           && ( pNext == rhs.pNext )
67039           && ( flags == rhs.flags )
67040           && ( stageCount == rhs.stageCount )
67041           && ( pStages == rhs.pStages )
67042           && ( groupCount == rhs.groupCount )
67043           && ( pGroups == rhs.pGroups )
67044           && ( maxRecursionDepth == rhs.maxRecursionDepth )
67045           && ( layout == rhs.layout )
67046           && ( basePipelineHandle == rhs.basePipelineHandle )
67047           && ( basePipelineIndex == rhs.basePipelineIndex );
67048     }
67049 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV67050     bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67051     {
67052       return !operator==( rhs );
67053     }
67054 #endif
67055 
67056 
67057 
67058   public:
67059     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
67060     const void* pNext = {};
67061     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
67062     uint32_t stageCount = {};
67063     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
67064     uint32_t groupCount = {};
67065     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {};
67066     uint32_t maxRecursionDepth = {};
67067     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
67068     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
67069     int32_t basePipelineIndex = {};
67070 
67071   };
67072   static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" );
67073   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
67074 
67075   template <>
67076   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
67077   {
67078     using Type = RayTracingPipelineCreateInfoNV;
67079   };
67080 
67081   struct RefreshCycleDurationGOOGLE
67082   {
67083 
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE67084     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = {} ) VULKAN_HPP_NOEXCEPT
67085       : refreshDuration( refreshDuration_ )
67086     {}
67087 
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE67088     RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
67089     {
67090       *this = rhs;
67091     }
67092 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE67093     RefreshCycleDurationGOOGLE& operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
67094     {
67095       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>(&rhs);
67096       return *this;
67097     }
67098 
67099 
operator VkRefreshCycleDurationGOOGLE const&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE67100     operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT
67101     {
67102       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
67103     }
67104 
operator VkRefreshCycleDurationGOOGLE&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE67105     operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
67106     {
67107       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
67108     }
67109 
67110 
67111 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67112     auto operator<=>( RefreshCycleDurationGOOGLE const& ) const = default;
67113 #else
operator ==VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE67114     bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
67115     {
67116       return ( refreshDuration == rhs.refreshDuration );
67117     }
67118 
operator !=VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE67119     bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
67120     {
67121       return !operator==( rhs );
67122     }
67123 #endif
67124 
67125 
67126 
67127   public:
67128     uint64_t refreshDuration = {};
67129 
67130   };
67131   static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" );
67132   static_assert( std::is_standard_layout<RefreshCycleDurationGOOGLE>::value, "struct wrapper is not a standard layout!" );
67133 
67134   struct RenderPassAttachmentBeginInfo
67135   {
67136     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
67137 
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67138     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( uint32_t attachmentCount_ = {},
67139                                                         const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {} ) VULKAN_HPP_NOEXCEPT
67140       : attachmentCount( attachmentCount_ )
67141       , pAttachments( pAttachments_ )
67142     {}
67143 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67144     RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67145     {
67146       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassAttachmentBeginInfo ) - offsetof( RenderPassAttachmentBeginInfo, pNext ) );
67147       return *this;
67148     }
67149 
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67150     RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67151     {
67152       *this = rhs;
67153     }
67154 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67155     RenderPassAttachmentBeginInfo& operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67156     {
67157       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>(&rhs);
67158       return *this;
67159     }
67160 
setPNextVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67161     RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
67162     {
67163       pNext = pNext_;
67164       return *this;
67165     }
67166 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67167     RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
67168     {
67169       attachmentCount = attachmentCount_;
67170       return *this;
67171     }
67172 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67173     RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
67174     {
67175       pAttachments = pAttachments_;
67176       return *this;
67177     }
67178 
67179 
operator VkRenderPassAttachmentBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67180     operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT
67181     {
67182       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>( this );
67183     }
67184 
operator VkRenderPassAttachmentBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67185     operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
67186     {
67187       return *reinterpret_cast<VkRenderPassAttachmentBeginInfo*>( this );
67188     }
67189 
67190 
67191 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67192     auto operator<=>( RenderPassAttachmentBeginInfo const& ) const = default;
67193 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67194     bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
67195     {
67196       return ( sType == rhs.sType )
67197           && ( pNext == rhs.pNext )
67198           && ( attachmentCount == rhs.attachmentCount )
67199           && ( pAttachments == rhs.pAttachments );
67200     }
67201 
operator !=VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo67202     bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
67203     {
67204       return !operator==( rhs );
67205     }
67206 #endif
67207 
67208 
67209 
67210   public:
67211     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
67212     const void* pNext = {};
67213     uint32_t attachmentCount = {};
67214     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
67215 
67216   };
67217   static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" );
67218   static_assert( std::is_standard_layout<RenderPassAttachmentBeginInfo>::value, "struct wrapper is not a standard layout!" );
67219 
67220   template <>
67221   struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
67222   {
67223     using Type = RenderPassAttachmentBeginInfo;
67224   };
67225 
67226   struct RenderPassBeginInfo
67227   {
67228     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
67229 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67230     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
67231                                                  VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {},
67232                                                  VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
67233                                                  uint32_t clearValueCount_ = {},
67234                                                  const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ = {} ) VULKAN_HPP_NOEXCEPT
67235       : renderPass( renderPass_ )
67236       , framebuffer( framebuffer_ )
67237       , renderArea( renderArea_ )
67238       , clearValueCount( clearValueCount_ )
67239       , pClearValues( pClearValues_ )
67240     {}
67241 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo67242     RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67243     {
67244       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassBeginInfo ) - offsetof( RenderPassBeginInfo, pNext ) );
67245       return *this;
67246     }
67247 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67248     RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67249     {
67250       *this = rhs;
67251     }
67252 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo67253     RenderPassBeginInfo& operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67254     {
67255       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>(&rhs);
67256       return *this;
67257     }
67258 
setPNextVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67259     RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
67260     {
67261       pNext = pNext_;
67262       return *this;
67263     }
67264 
setRenderPassVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67265     RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
67266     {
67267       renderPass = renderPass_;
67268       return *this;
67269     }
67270 
setFramebufferVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67271     RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
67272     {
67273       framebuffer = framebuffer_;
67274       return *this;
67275     }
67276 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67277     RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
67278     {
67279       renderArea = renderArea_;
67280       return *this;
67281     }
67282 
setClearValueCountVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67283     RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
67284     {
67285       clearValueCount = clearValueCount_;
67286       return *this;
67287     }
67288 
setPClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo67289     RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT
67290     {
67291       pClearValues = pClearValues_;
67292       return *this;
67293     }
67294 
67295 
operator VkRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo67296     operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
67297     {
67298       return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
67299     }
67300 
operator VkRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo67301     operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
67302     {
67303       return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
67304     }
67305 
67306 
67307 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67308     auto operator<=>( RenderPassBeginInfo const& ) const = default;
67309 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassBeginInfo67310     bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
67311     {
67312       return ( sType == rhs.sType )
67313           && ( pNext == rhs.pNext )
67314           && ( renderPass == rhs.renderPass )
67315           && ( framebuffer == rhs.framebuffer )
67316           && ( renderArea == rhs.renderArea )
67317           && ( clearValueCount == rhs.clearValueCount )
67318           && ( pClearValues == rhs.pClearValues );
67319     }
67320 
operator !=VULKAN_HPP_NAMESPACE::RenderPassBeginInfo67321     bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
67322     {
67323       return !operator==( rhs );
67324     }
67325 #endif
67326 
67327 
67328 
67329   public:
67330     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
67331     const void* pNext = {};
67332     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
67333     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
67334     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
67335     uint32_t clearValueCount = {};
67336     const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {};
67337 
67338   };
67339   static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" );
67340   static_assert( std::is_standard_layout<RenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
67341 
67342   template <>
67343   struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
67344   {
67345     using Type = RenderPassBeginInfo;
67346   };
67347 
67348   struct SubpassDescription
67349   {
67350 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription67351     VULKAN_HPP_CONSTEXPR SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {},
67352                                              VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
67353                                              uint32_t inputAttachmentCount_ = {},
67354                                              const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ = {},
67355                                              uint32_t colorAttachmentCount_ = {},
67356                                              const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ = {},
67357                                              const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ = {},
67358                                              const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {},
67359                                              uint32_t preserveAttachmentCount_ = {},
67360                                              const uint32_t* pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT
67361       : flags( flags_ )
67362       , pipelineBindPoint( pipelineBindPoint_ )
67363       , inputAttachmentCount( inputAttachmentCount_ )
67364       , pInputAttachments( pInputAttachments_ )
67365       , colorAttachmentCount( colorAttachmentCount_ )
67366       , pColorAttachments( pColorAttachments_ )
67367       , pResolveAttachments( pResolveAttachments_ )
67368       , pDepthStencilAttachment( pDepthStencilAttachment_ )
67369       , preserveAttachmentCount( preserveAttachmentCount_ )
67370       , pPreserveAttachments( pPreserveAttachments_ )
67371     {}
67372 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription67373     SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
67374     {
67375       *this = rhs;
67376     }
67377 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription67378     SubpassDescription& operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
67379     {
67380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>(&rhs);
67381       return *this;
67382     }
67383 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription67384     SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
67385     {
67386       flags = flags_;
67387       return *this;
67388     }
67389 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription67390     SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
67391     {
67392       pipelineBindPoint = pipelineBindPoint_;
67393       return *this;
67394     }
67395 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription67396     SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
67397     {
67398       inputAttachmentCount = inputAttachmentCount_;
67399       return *this;
67400     }
67401 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription67402     SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
67403     {
67404       pInputAttachments = pInputAttachments_;
67405       return *this;
67406     }
67407 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription67408     SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
67409     {
67410       colorAttachmentCount = colorAttachmentCount_;
67411       return *this;
67412     }
67413 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription67414     SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
67415     {
67416       pColorAttachments = pColorAttachments_;
67417       return *this;
67418     }
67419 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription67420     SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
67421     {
67422       pResolveAttachments = pResolveAttachments_;
67423       return *this;
67424     }
67425 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription67426     SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
67427     {
67428       pDepthStencilAttachment = pDepthStencilAttachment_;
67429       return *this;
67430     }
67431 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription67432     SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
67433     {
67434       preserveAttachmentCount = preserveAttachmentCount_;
67435       return *this;
67436     }
67437 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription67438     SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
67439     {
67440       pPreserveAttachments = pPreserveAttachments_;
67441       return *this;
67442     }
67443 
67444 
operator VkSubpassDescription const&VULKAN_HPP_NAMESPACE::SubpassDescription67445     operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT
67446     {
67447       return *reinterpret_cast<const VkSubpassDescription*>( this );
67448     }
67449 
operator VkSubpassDescription&VULKAN_HPP_NAMESPACE::SubpassDescription67450     operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
67451     {
67452       return *reinterpret_cast<VkSubpassDescription*>( this );
67453     }
67454 
67455 
67456 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67457     auto operator<=>( SubpassDescription const& ) const = default;
67458 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription67459     bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
67460     {
67461       return ( flags == rhs.flags )
67462           && ( pipelineBindPoint == rhs.pipelineBindPoint )
67463           && ( inputAttachmentCount == rhs.inputAttachmentCount )
67464           && ( pInputAttachments == rhs.pInputAttachments )
67465           && ( colorAttachmentCount == rhs.colorAttachmentCount )
67466           && ( pColorAttachments == rhs.pColorAttachments )
67467           && ( pResolveAttachments == rhs.pResolveAttachments )
67468           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
67469           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
67470           && ( pPreserveAttachments == rhs.pPreserveAttachments );
67471     }
67472 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription67473     bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
67474     {
67475       return !operator==( rhs );
67476     }
67477 #endif
67478 
67479 
67480 
67481   public:
67482     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
67483     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
67484     uint32_t inputAttachmentCount = {};
67485     const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {};
67486     uint32_t colorAttachmentCount = {};
67487     const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {};
67488     const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {};
67489     const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {};
67490     uint32_t preserveAttachmentCount = {};
67491     const uint32_t* pPreserveAttachments = {};
67492 
67493   };
67494   static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" );
67495   static_assert( std::is_standard_layout<SubpassDescription>::value, "struct wrapper is not a standard layout!" );
67496 
67497   struct SubpassDependency
67498   {
67499 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency67500     VULKAN_HPP_CONSTEXPR SubpassDependency( uint32_t srcSubpass_ = {},
67501                                             uint32_t dstSubpass_ = {},
67502                                             VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {},
67503                                             VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {},
67504                                             VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
67505                                             VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
67506                                             VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {} ) VULKAN_HPP_NOEXCEPT
67507       : srcSubpass( srcSubpass_ )
67508       , dstSubpass( dstSubpass_ )
67509       , srcStageMask( srcStageMask_ )
67510       , dstStageMask( dstStageMask_ )
67511       , srcAccessMask( srcAccessMask_ )
67512       , dstAccessMask( dstAccessMask_ )
67513       , dependencyFlags( dependencyFlags_ )
67514     {}
67515 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency67516     SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
67517     {
67518       *this = rhs;
67519     }
67520 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency67521     SubpassDependency& operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
67522     {
67523       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>(&rhs);
67524       return *this;
67525     }
67526 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency67527     SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
67528     {
67529       srcSubpass = srcSubpass_;
67530       return *this;
67531     }
67532 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency67533     SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
67534     {
67535       dstSubpass = dstSubpass_;
67536       return *this;
67537     }
67538 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency67539     SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
67540     {
67541       srcStageMask = srcStageMask_;
67542       return *this;
67543     }
67544 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency67545     SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
67546     {
67547       dstStageMask = dstStageMask_;
67548       return *this;
67549     }
67550 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency67551     SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
67552     {
67553       srcAccessMask = srcAccessMask_;
67554       return *this;
67555     }
67556 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency67557     SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
67558     {
67559       dstAccessMask = dstAccessMask_;
67560       return *this;
67561     }
67562 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency67563     SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
67564     {
67565       dependencyFlags = dependencyFlags_;
67566       return *this;
67567     }
67568 
67569 
operator VkSubpassDependency const&VULKAN_HPP_NAMESPACE::SubpassDependency67570     operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT
67571     {
67572       return *reinterpret_cast<const VkSubpassDependency*>( this );
67573     }
67574 
operator VkSubpassDependency&VULKAN_HPP_NAMESPACE::SubpassDependency67575     operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
67576     {
67577       return *reinterpret_cast<VkSubpassDependency*>( this );
67578     }
67579 
67580 
67581 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67582     auto operator<=>( SubpassDependency const& ) const = default;
67583 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency67584     bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
67585     {
67586       return ( srcSubpass == rhs.srcSubpass )
67587           && ( dstSubpass == rhs.dstSubpass )
67588           && ( srcStageMask == rhs.srcStageMask )
67589           && ( dstStageMask == rhs.dstStageMask )
67590           && ( srcAccessMask == rhs.srcAccessMask )
67591           && ( dstAccessMask == rhs.dstAccessMask )
67592           && ( dependencyFlags == rhs.dependencyFlags );
67593     }
67594 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency67595     bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
67596     {
67597       return !operator==( rhs );
67598     }
67599 #endif
67600 
67601 
67602 
67603   public:
67604     uint32_t srcSubpass = {};
67605     uint32_t dstSubpass = {};
67606     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
67607     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
67608     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
67609     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
67610     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
67611 
67612   };
67613   static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" );
67614   static_assert( std::is_standard_layout<SubpassDependency>::value, "struct wrapper is not a standard layout!" );
67615 
67616   struct RenderPassCreateInfo
67617   {
67618     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
67619 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67620     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {},
67621                                                uint32_t attachmentCount_ = {},
67622                                                const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ = {},
67623                                                uint32_t subpassCount_ = {},
67624                                                const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ = {},
67625                                                uint32_t dependencyCount_ = {},
67626                                                const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ = {} ) VULKAN_HPP_NOEXCEPT
67627       : flags( flags_ )
67628       , attachmentCount( attachmentCount_ )
67629       , pAttachments( pAttachments_ )
67630       , subpassCount( subpassCount_ )
67631       , pSubpasses( pSubpasses_ )
67632       , dependencyCount( dependencyCount_ )
67633       , pDependencies( pDependencies_ )
67634     {}
67635 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo67636     RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67637     {
67638       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassCreateInfo ) - offsetof( RenderPassCreateInfo, pNext ) );
67639       return *this;
67640     }
67641 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67642     RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67643     {
67644       *this = rhs;
67645     }
67646 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo67647     RenderPassCreateInfo& operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
67648     {
67649       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>(&rhs);
67650       return *this;
67651     }
67652 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67653     RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
67654     {
67655       pNext = pNext_;
67656       return *this;
67657     }
67658 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67659     RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
67660     {
67661       flags = flags_;
67662       return *this;
67663     }
67664 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67665     RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
67666     {
67667       attachmentCount = attachmentCount_;
67668       return *this;
67669     }
67670 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67671     RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT
67672     {
67673       pAttachments = pAttachments_;
67674       return *this;
67675     }
67676 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67677     RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
67678     {
67679       subpassCount = subpassCount_;
67680       return *this;
67681     }
67682 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67683     RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
67684     {
67685       pSubpasses = pSubpasses_;
67686       return *this;
67687     }
67688 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67689     RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
67690     {
67691       dependencyCount = dependencyCount_;
67692       return *this;
67693     }
67694 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo67695     RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT
67696     {
67697       pDependencies = pDependencies_;
67698       return *this;
67699     }
67700 
67701 
operator VkRenderPassCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo67702     operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT
67703     {
67704       return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
67705     }
67706 
operator VkRenderPassCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo67707     operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
67708     {
67709       return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
67710     }
67711 
67712 
67713 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67714     auto operator<=>( RenderPassCreateInfo const& ) const = default;
67715 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo67716     bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
67717     {
67718       return ( sType == rhs.sType )
67719           && ( pNext == rhs.pNext )
67720           && ( flags == rhs.flags )
67721           && ( attachmentCount == rhs.attachmentCount )
67722           && ( pAttachments == rhs.pAttachments )
67723           && ( subpassCount == rhs.subpassCount )
67724           && ( pSubpasses == rhs.pSubpasses )
67725           && ( dependencyCount == rhs.dependencyCount )
67726           && ( pDependencies == rhs.pDependencies );
67727     }
67728 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo67729     bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
67730     {
67731       return !operator==( rhs );
67732     }
67733 #endif
67734 
67735 
67736 
67737   public:
67738     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
67739     const void* pNext = {};
67740     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
67741     uint32_t attachmentCount = {};
67742     const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {};
67743     uint32_t subpassCount = {};
67744     const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {};
67745     uint32_t dependencyCount = {};
67746     const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {};
67747 
67748   };
67749   static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
67750   static_assert( std::is_standard_layout<RenderPassCreateInfo>::value, "struct wrapper is not a standard layout!" );
67751 
67752   template <>
67753   struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
67754   {
67755     using Type = RenderPassCreateInfo;
67756   };
67757 
67758   struct SubpassDescription2
67759   {
67760     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
67761 
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription267762     VULKAN_HPP_CONSTEXPR SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {},
67763                                               VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
67764                                               uint32_t viewMask_ = {},
67765                                               uint32_t inputAttachmentCount_ = {},
67766                                               const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ = {},
67767                                               uint32_t colorAttachmentCount_ = {},
67768                                               const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ = {},
67769                                               const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ = {},
67770                                               const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {},
67771                                               uint32_t preserveAttachmentCount_ = {},
67772                                               const uint32_t* pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT
67773       : flags( flags_ )
67774       , pipelineBindPoint( pipelineBindPoint_ )
67775       , viewMask( viewMask_ )
67776       , inputAttachmentCount( inputAttachmentCount_ )
67777       , pInputAttachments( pInputAttachments_ )
67778       , colorAttachmentCount( colorAttachmentCount_ )
67779       , pColorAttachments( pColorAttachments_ )
67780       , pResolveAttachments( pResolveAttachments_ )
67781       , pDepthStencilAttachment( pDepthStencilAttachment_ )
67782       , preserveAttachmentCount( preserveAttachmentCount_ )
67783       , pPreserveAttachments( pPreserveAttachments_ )
67784     {}
67785 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription267786     SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
67787     {
67788       memcpy( &pNext, &rhs.pNext, sizeof( SubpassDescription2 ) - offsetof( SubpassDescription2, pNext ) );
67789       return *this;
67790     }
67791 
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription267792     SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
67793     {
67794       *this = rhs;
67795     }
67796 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription267797     SubpassDescription2& operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
67798     {
67799       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>(&rhs);
67800       return *this;
67801     }
67802 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescription267803     SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
67804     {
67805       pNext = pNext_;
67806       return *this;
67807     }
67808 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription267809     SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
67810     {
67811       flags = flags_;
67812       return *this;
67813     }
67814 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription267815     SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
67816     {
67817       pipelineBindPoint = pipelineBindPoint_;
67818       return *this;
67819     }
67820 
setViewMaskVULKAN_HPP_NAMESPACE::SubpassDescription267821     SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
67822     {
67823       viewMask = viewMask_;
67824       return *this;
67825     }
67826 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription267827     SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
67828     {
67829       inputAttachmentCount = inputAttachmentCount_;
67830       return *this;
67831     }
67832 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription267833     SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
67834     {
67835       pInputAttachments = pInputAttachments_;
67836       return *this;
67837     }
67838 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription267839     SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
67840     {
67841       colorAttachmentCount = colorAttachmentCount_;
67842       return *this;
67843     }
67844 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription267845     SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
67846     {
67847       pColorAttachments = pColorAttachments_;
67848       return *this;
67849     }
67850 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription267851     SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
67852     {
67853       pResolveAttachments = pResolveAttachments_;
67854       return *this;
67855     }
67856 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription267857     SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
67858     {
67859       pDepthStencilAttachment = pDepthStencilAttachment_;
67860       return *this;
67861     }
67862 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription267863     SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
67864     {
67865       preserveAttachmentCount = preserveAttachmentCount_;
67866       return *this;
67867     }
67868 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription267869     SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
67870     {
67871       pPreserveAttachments = pPreserveAttachments_;
67872       return *this;
67873     }
67874 
67875 
operator VkSubpassDescription2 const&VULKAN_HPP_NAMESPACE::SubpassDescription267876     operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT
67877     {
67878       return *reinterpret_cast<const VkSubpassDescription2*>( this );
67879     }
67880 
operator VkSubpassDescription2&VULKAN_HPP_NAMESPACE::SubpassDescription267881     operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
67882     {
67883       return *reinterpret_cast<VkSubpassDescription2*>( this );
67884     }
67885 
67886 
67887 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67888     auto operator<=>( SubpassDescription2 const& ) const = default;
67889 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription267890     bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
67891     {
67892       return ( sType == rhs.sType )
67893           && ( pNext == rhs.pNext )
67894           && ( flags == rhs.flags )
67895           && ( pipelineBindPoint == rhs.pipelineBindPoint )
67896           && ( viewMask == rhs.viewMask )
67897           && ( inputAttachmentCount == rhs.inputAttachmentCount )
67898           && ( pInputAttachments == rhs.pInputAttachments )
67899           && ( colorAttachmentCount == rhs.colorAttachmentCount )
67900           && ( pColorAttachments == rhs.pColorAttachments )
67901           && ( pResolveAttachments == rhs.pResolveAttachments )
67902           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
67903           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
67904           && ( pPreserveAttachments == rhs.pPreserveAttachments );
67905     }
67906 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription267907     bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
67908     {
67909       return !operator==( rhs );
67910     }
67911 #endif
67912 
67913 
67914 
67915   public:
67916     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
67917     const void* pNext = {};
67918     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
67919     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
67920     uint32_t viewMask = {};
67921     uint32_t inputAttachmentCount = {};
67922     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {};
67923     uint32_t colorAttachmentCount = {};
67924     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {};
67925     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {};
67926     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {};
67927     uint32_t preserveAttachmentCount = {};
67928     const uint32_t* pPreserveAttachments = {};
67929 
67930   };
67931   static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" );
67932   static_assert( std::is_standard_layout<SubpassDescription2>::value, "struct wrapper is not a standard layout!" );
67933 
67934   template <>
67935   struct CppType<StructureType, StructureType::eSubpassDescription2>
67936   {
67937     using Type = SubpassDescription2;
67938   };
67939 
67940   struct SubpassDependency2
67941   {
67942     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
67943 
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency267944     VULKAN_HPP_CONSTEXPR SubpassDependency2( uint32_t srcSubpass_ = {},
67945                                              uint32_t dstSubpass_ = {},
67946                                              VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {},
67947                                              VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {},
67948                                              VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
67949                                              VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
67950                                              VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {},
67951                                              int32_t viewOffset_ = {} ) VULKAN_HPP_NOEXCEPT
67952       : srcSubpass( srcSubpass_ )
67953       , dstSubpass( dstSubpass_ )
67954       , srcStageMask( srcStageMask_ )
67955       , dstStageMask( dstStageMask_ )
67956       , srcAccessMask( srcAccessMask_ )
67957       , dstAccessMask( dstAccessMask_ )
67958       , dependencyFlags( dependencyFlags_ )
67959       , viewOffset( viewOffset_ )
67960     {}
67961 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency267962     SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
67963     {
67964       memcpy( &pNext, &rhs.pNext, sizeof( SubpassDependency2 ) - offsetof( SubpassDependency2, pNext ) );
67965       return *this;
67966     }
67967 
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency267968     SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
67969     {
67970       *this = rhs;
67971     }
67972 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency267973     SubpassDependency2& operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
67974     {
67975       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>(&rhs);
67976       return *this;
67977     }
67978 
setPNextVULKAN_HPP_NAMESPACE::SubpassDependency267979     SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
67980     {
67981       pNext = pNext_;
67982       return *this;
67983     }
67984 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency267985     SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
67986     {
67987       srcSubpass = srcSubpass_;
67988       return *this;
67989     }
67990 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency267991     SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
67992     {
67993       dstSubpass = dstSubpass_;
67994       return *this;
67995     }
67996 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency267997     SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
67998     {
67999       srcStageMask = srcStageMask_;
68000       return *this;
68001     }
68002 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency268003     SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
68004     {
68005       dstStageMask = dstStageMask_;
68006       return *this;
68007     }
68008 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency268009     SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
68010     {
68011       srcAccessMask = srcAccessMask_;
68012       return *this;
68013     }
68014 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency268015     SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
68016     {
68017       dstAccessMask = dstAccessMask_;
68018       return *this;
68019     }
68020 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency268021     SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
68022     {
68023       dependencyFlags = dependencyFlags_;
68024       return *this;
68025     }
68026 
setViewOffsetVULKAN_HPP_NAMESPACE::SubpassDependency268027     SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
68028     {
68029       viewOffset = viewOffset_;
68030       return *this;
68031     }
68032 
68033 
operator VkSubpassDependency2 const&VULKAN_HPP_NAMESPACE::SubpassDependency268034     operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT
68035     {
68036       return *reinterpret_cast<const VkSubpassDependency2*>( this );
68037     }
68038 
operator VkSubpassDependency2&VULKAN_HPP_NAMESPACE::SubpassDependency268039     operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
68040     {
68041       return *reinterpret_cast<VkSubpassDependency2*>( this );
68042     }
68043 
68044 
68045 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68046     auto operator<=>( SubpassDependency2 const& ) const = default;
68047 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency268048     bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
68049     {
68050       return ( sType == rhs.sType )
68051           && ( pNext == rhs.pNext )
68052           && ( srcSubpass == rhs.srcSubpass )
68053           && ( dstSubpass == rhs.dstSubpass )
68054           && ( srcStageMask == rhs.srcStageMask )
68055           && ( dstStageMask == rhs.dstStageMask )
68056           && ( srcAccessMask == rhs.srcAccessMask )
68057           && ( dstAccessMask == rhs.dstAccessMask )
68058           && ( dependencyFlags == rhs.dependencyFlags )
68059           && ( viewOffset == rhs.viewOffset );
68060     }
68061 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency268062     bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
68063     {
68064       return !operator==( rhs );
68065     }
68066 #endif
68067 
68068 
68069 
68070   public:
68071     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
68072     const void* pNext = {};
68073     uint32_t srcSubpass = {};
68074     uint32_t dstSubpass = {};
68075     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
68076     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
68077     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
68078     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
68079     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
68080     int32_t viewOffset = {};
68081 
68082   };
68083   static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" );
68084   static_assert( std::is_standard_layout<SubpassDependency2>::value, "struct wrapper is not a standard layout!" );
68085 
68086   template <>
68087   struct CppType<StructureType, StructureType::eSubpassDependency2>
68088   {
68089     using Type = SubpassDependency2;
68090   };
68091 
68092   struct RenderPassCreateInfo2
68093   {
68094     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
68095 
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268096     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {},
68097                                                 uint32_t attachmentCount_ = {},
68098                                                 const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ = {},
68099                                                 uint32_t subpassCount_ = {},
68100                                                 const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ = {},
68101                                                 uint32_t dependencyCount_ = {},
68102                                                 const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ = {},
68103                                                 uint32_t correlatedViewMaskCount_ = {},
68104                                                 const uint32_t* pCorrelatedViewMasks_ = {} ) VULKAN_HPP_NOEXCEPT
68105       : flags( flags_ )
68106       , attachmentCount( attachmentCount_ )
68107       , pAttachments( pAttachments_ )
68108       , subpassCount( subpassCount_ )
68109       , pSubpasses( pSubpasses_ )
68110       , dependencyCount( dependencyCount_ )
68111       , pDependencies( pDependencies_ )
68112       , correlatedViewMaskCount( correlatedViewMaskCount_ )
68113       , pCorrelatedViewMasks( pCorrelatedViewMasks_ )
68114     {}
68115 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268116     RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
68117     {
68118       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassCreateInfo2 ) - offsetof( RenderPassCreateInfo2, pNext ) );
68119       return *this;
68120     }
68121 
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268122     RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
68123     {
68124       *this = rhs;
68125     }
68126 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268127     RenderPassCreateInfo2& operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
68128     {
68129       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>(&rhs);
68130       return *this;
68131     }
68132 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268133     RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
68134     {
68135       pNext = pNext_;
68136       return *this;
68137     }
68138 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268139     RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
68140     {
68141       flags = flags_;
68142       return *this;
68143     }
68144 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268145     RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
68146     {
68147       attachmentCount = attachmentCount_;
68148       return *this;
68149     }
68150 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268151     RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT
68152     {
68153       pAttachments = pAttachments_;
68154       return *this;
68155     }
68156 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268157     RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
68158     {
68159       subpassCount = subpassCount_;
68160       return *this;
68161     }
68162 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268163     RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
68164     {
68165       pSubpasses = pSubpasses_;
68166       return *this;
68167     }
68168 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268169     RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
68170     {
68171       dependencyCount = dependencyCount_;
68172       return *this;
68173     }
68174 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268175     RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT
68176     {
68177       pDependencies = pDependencies_;
68178       return *this;
68179     }
68180 
setCorrelatedViewMaskCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268181     RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
68182     {
68183       correlatedViewMaskCount = correlatedViewMaskCount_;
68184       return *this;
68185     }
68186 
setPCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo268187     RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
68188     {
68189       pCorrelatedViewMasks = pCorrelatedViewMasks_;
68190       return *this;
68191     }
68192 
68193 
operator VkRenderPassCreateInfo2 const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268194     operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT
68195     {
68196       return *reinterpret_cast<const VkRenderPassCreateInfo2*>( this );
68197     }
68198 
operator VkRenderPassCreateInfo2&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268199     operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
68200     {
68201       return *reinterpret_cast<VkRenderPassCreateInfo2*>( this );
68202     }
68203 
68204 
68205 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68206     auto operator<=>( RenderPassCreateInfo2 const& ) const = default;
68207 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268208     bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
68209     {
68210       return ( sType == rhs.sType )
68211           && ( pNext == rhs.pNext )
68212           && ( flags == rhs.flags )
68213           && ( attachmentCount == rhs.attachmentCount )
68214           && ( pAttachments == rhs.pAttachments )
68215           && ( subpassCount == rhs.subpassCount )
68216           && ( pSubpasses == rhs.pSubpasses )
68217           && ( dependencyCount == rhs.dependencyCount )
68218           && ( pDependencies == rhs.pDependencies )
68219           && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
68220           && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
68221     }
68222 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo268223     bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
68224     {
68225       return !operator==( rhs );
68226     }
68227 #endif
68228 
68229 
68230 
68231   public:
68232     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
68233     const void* pNext = {};
68234     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
68235     uint32_t attachmentCount = {};
68236     const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {};
68237     uint32_t subpassCount = {};
68238     const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {};
68239     uint32_t dependencyCount = {};
68240     const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {};
68241     uint32_t correlatedViewMaskCount = {};
68242     const uint32_t* pCorrelatedViewMasks = {};
68243 
68244   };
68245   static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" );
68246   static_assert( std::is_standard_layout<RenderPassCreateInfo2>::value, "struct wrapper is not a standard layout!" );
68247 
68248   template <>
68249   struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
68250   {
68251     using Type = RenderPassCreateInfo2;
68252   };
68253 
68254   struct RenderPassFragmentDensityMapCreateInfoEXT
68255   {
68256     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
68257 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68258     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {} ) VULKAN_HPP_NOEXCEPT
68259       : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
68260     {}
68261 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68262     RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68263     {
68264       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) - offsetof( RenderPassFragmentDensityMapCreateInfoEXT, pNext ) );
68265       return *this;
68266     }
68267 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68268     RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68269     {
68270       *this = rhs;
68271     }
68272 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68273     RenderPassFragmentDensityMapCreateInfoEXT& operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68274     {
68275       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>(&rhs);
68276       return *this;
68277     }
68278 
setPNextVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68279     RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
68280     {
68281       pNext = pNext_;
68282       return *this;
68283     }
68284 
setFragmentDensityMapAttachmentVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68285     RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
68286     {
68287       fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
68288       return *this;
68289     }
68290 
68291 
operator VkRenderPassFragmentDensityMapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68292     operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
68293     {
68294       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
68295     }
68296 
operator VkRenderPassFragmentDensityMapCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68297     operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
68298     {
68299       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
68300     }
68301 
68302 
68303 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68304     auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const& ) const = default;
68305 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68306     bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68307     {
68308       return ( sType == rhs.sType )
68309           && ( pNext == rhs.pNext )
68310           && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
68311     }
68312 
operator !=VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT68313     bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68314     {
68315       return !operator==( rhs );
68316     }
68317 #endif
68318 
68319 
68320 
68321   public:
68322     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
68323     const void* pNext = {};
68324     VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
68325 
68326   };
68327   static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" );
68328   static_assert( std::is_standard_layout<RenderPassFragmentDensityMapCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
68329 
68330   template <>
68331   struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
68332   {
68333     using Type = RenderPassFragmentDensityMapCreateInfoEXT;
68334   };
68335 
68336   struct RenderPassInputAttachmentAspectCreateInfo
68337   {
68338     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
68339 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68340     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = {},
68341                                                                     const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {} ) VULKAN_HPP_NOEXCEPT
68342       : aspectReferenceCount( aspectReferenceCount_ )
68343       , pAspectReferences( pAspectReferences_ )
68344     {}
68345 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68346     RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68347     {
68348       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassInputAttachmentAspectCreateInfo ) - offsetof( RenderPassInputAttachmentAspectCreateInfo, pNext ) );
68349       return *this;
68350     }
68351 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68352     RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68353     {
68354       *this = rhs;
68355     }
68356 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68357     RenderPassInputAttachmentAspectCreateInfo& operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68358     {
68359       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>(&rhs);
68360       return *this;
68361     }
68362 
setPNextVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68363     RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
68364     {
68365       pNext = pNext_;
68366       return *this;
68367     }
68368 
setAspectReferenceCountVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68369     RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
68370     {
68371       aspectReferenceCount = aspectReferenceCount_;
68372       return *this;
68373     }
68374 
setPAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68375     RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
68376     {
68377       pAspectReferences = pAspectReferences_;
68378       return *this;
68379     }
68380 
68381 
operator VkRenderPassInputAttachmentAspectCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68382     operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT
68383     {
68384       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
68385     }
68386 
operator VkRenderPassInputAttachmentAspectCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68387     operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
68388     {
68389       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
68390     }
68391 
68392 
68393 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68394     auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const& ) const = default;
68395 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68396     bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
68397     {
68398       return ( sType == rhs.sType )
68399           && ( pNext == rhs.pNext )
68400           && ( aspectReferenceCount == rhs.aspectReferenceCount )
68401           && ( pAspectReferences == rhs.pAspectReferences );
68402     }
68403 
operator !=VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo68404     bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
68405     {
68406       return !operator==( rhs );
68407     }
68408 #endif
68409 
68410 
68411 
68412   public:
68413     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
68414     const void* pNext = {};
68415     uint32_t aspectReferenceCount = {};
68416     const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {};
68417 
68418   };
68419   static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" );
68420   static_assert( std::is_standard_layout<RenderPassInputAttachmentAspectCreateInfo>::value, "struct wrapper is not a standard layout!" );
68421 
68422   template <>
68423   struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
68424   {
68425     using Type = RenderPassInputAttachmentAspectCreateInfo;
68426   };
68427 
68428   struct RenderPassMultiviewCreateInfo
68429   {
68430     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
68431 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68432     VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = {},
68433                                                         const uint32_t* pViewMasks_ = {},
68434                                                         uint32_t dependencyCount_ = {},
68435                                                         const int32_t* pViewOffsets_ = {},
68436                                                         uint32_t correlationMaskCount_ = {},
68437                                                         const uint32_t* pCorrelationMasks_ = {} ) VULKAN_HPP_NOEXCEPT
68438       : subpassCount( subpassCount_ )
68439       , pViewMasks( pViewMasks_ )
68440       , dependencyCount( dependencyCount_ )
68441       , pViewOffsets( pViewOffsets_ )
68442       , correlationMaskCount( correlationMaskCount_ )
68443       , pCorrelationMasks( pCorrelationMasks_ )
68444     {}
68445 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68446     RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68447     {
68448       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassMultiviewCreateInfo ) - offsetof( RenderPassMultiviewCreateInfo, pNext ) );
68449       return *this;
68450     }
68451 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68452     RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68453     {
68454       *this = rhs;
68455     }
68456 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68457     RenderPassMultiviewCreateInfo& operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68458     {
68459       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>(&rhs);
68460       return *this;
68461     }
68462 
setPNextVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68463     RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
68464     {
68465       pNext = pNext_;
68466       return *this;
68467     }
68468 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68469     RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
68470     {
68471       subpassCount = subpassCount_;
68472       return *this;
68473     }
68474 
setPViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68475     RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT
68476     {
68477       pViewMasks = pViewMasks_;
68478       return *this;
68479     }
68480 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68481     RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
68482     {
68483       dependencyCount = dependencyCount_;
68484       return *this;
68485     }
68486 
setPViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68487     RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
68488     {
68489       pViewOffsets = pViewOffsets_;
68490       return *this;
68491     }
68492 
setCorrelationMaskCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68493     RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
68494     {
68495       correlationMaskCount = correlationMaskCount_;
68496       return *this;
68497     }
68498 
setPCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68499     RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
68500     {
68501       pCorrelationMasks = pCorrelationMasks_;
68502       return *this;
68503     }
68504 
68505 
operator VkRenderPassMultiviewCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68506     operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
68507     {
68508       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
68509     }
68510 
operator VkRenderPassMultiviewCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68511     operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
68512     {
68513       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
68514     }
68515 
68516 
68517 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68518     auto operator<=>( RenderPassMultiviewCreateInfo const& ) const = default;
68519 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68520     bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
68521     {
68522       return ( sType == rhs.sType )
68523           && ( pNext == rhs.pNext )
68524           && ( subpassCount == rhs.subpassCount )
68525           && ( pViewMasks == rhs.pViewMasks )
68526           && ( dependencyCount == rhs.dependencyCount )
68527           && ( pViewOffsets == rhs.pViewOffsets )
68528           && ( correlationMaskCount == rhs.correlationMaskCount )
68529           && ( pCorrelationMasks == rhs.pCorrelationMasks );
68530     }
68531 
operator !=VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo68532     bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
68533     {
68534       return !operator==( rhs );
68535     }
68536 #endif
68537 
68538 
68539 
68540   public:
68541     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
68542     const void* pNext = {};
68543     uint32_t subpassCount = {};
68544     const uint32_t* pViewMasks = {};
68545     uint32_t dependencyCount = {};
68546     const int32_t* pViewOffsets = {};
68547     uint32_t correlationMaskCount = {};
68548     const uint32_t* pCorrelationMasks = {};
68549 
68550   };
68551   static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" );
68552   static_assert( std::is_standard_layout<RenderPassMultiviewCreateInfo>::value, "struct wrapper is not a standard layout!" );
68553 
68554   template <>
68555   struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
68556   {
68557     using Type = RenderPassMultiviewCreateInfo;
68558   };
68559 
68560   struct SubpassSampleLocationsEXT
68561   {
68562 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68563     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( uint32_t subpassIndex_ = {},
68564                                                     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
68565       : subpassIndex( subpassIndex_ )
68566       , sampleLocationsInfo( sampleLocationsInfo_ )
68567     {}
68568 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68569     SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68570     {
68571       *this = rhs;
68572     }
68573 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68574     SubpassSampleLocationsEXT& operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68575     {
68576       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>(&rhs);
68577       return *this;
68578     }
68579 
setSubpassIndexVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68580     SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
68581     {
68582       subpassIndex = subpassIndex_;
68583       return *this;
68584     }
68585 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68586     SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
68587     {
68588       sampleLocationsInfo = sampleLocationsInfo_;
68589       return *this;
68590     }
68591 
68592 
operator VkSubpassSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68593     operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
68594     {
68595       return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
68596     }
68597 
operator VkSubpassSampleLocationsEXT&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68598     operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
68599     {
68600       return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
68601     }
68602 
68603 
68604 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68605     auto operator<=>( SubpassSampleLocationsEXT const& ) const = default;
68606 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68607     bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68608     {
68609       return ( subpassIndex == rhs.subpassIndex )
68610           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
68611     }
68612 
operator !=VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT68613     bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68614     {
68615       return !operator==( rhs );
68616     }
68617 #endif
68618 
68619 
68620 
68621   public:
68622     uint32_t subpassIndex = {};
68623     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
68624 
68625   };
68626   static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" );
68627   static_assert( std::is_standard_layout<SubpassSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
68628 
68629   struct RenderPassSampleLocationsBeginInfoEXT
68630   {
68631     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
68632 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68633     VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( uint32_t attachmentInitialSampleLocationsCount_ = {},
68634                                                                 const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = {},
68635                                                                 uint32_t postSubpassSampleLocationsCount_ = {},
68636                                                                 const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT
68637       : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ )
68638       , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ )
68639       , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ )
68640       , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
68641     {}
68642 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68643     RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68644     {
68645       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassSampleLocationsBeginInfoEXT ) - offsetof( RenderPassSampleLocationsBeginInfoEXT, pNext ) );
68646       return *this;
68647     }
68648 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68649     RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68650     {
68651       *this = rhs;
68652     }
68653 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68654     RenderPassSampleLocationsBeginInfoEXT& operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68655     {
68656       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>(&rhs);
68657       return *this;
68658     }
68659 
setPNextVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68660     RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
68661     {
68662       pNext = pNext_;
68663       return *this;
68664     }
68665 
setAttachmentInitialSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68666     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
68667     {
68668       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
68669       return *this;
68670     }
68671 
setPAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68672     RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
68673     {
68674       pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
68675       return *this;
68676     }
68677 
setPostSubpassSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68678     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
68679     {
68680       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
68681       return *this;
68682     }
68683 
setPPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68684     RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
68685     {
68686       pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
68687       return *this;
68688     }
68689 
68690 
operator VkRenderPassSampleLocationsBeginInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68691     operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
68692     {
68693       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
68694     }
68695 
operator VkRenderPassSampleLocationsBeginInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68696     operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
68697     {
68698       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
68699     }
68700 
68701 
68702 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68703     auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const& ) const = default;
68704 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68705     bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68706     {
68707       return ( sType == rhs.sType )
68708           && ( pNext == rhs.pNext )
68709           && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
68710           && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
68711           && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
68712           && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
68713     }
68714 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT68715     bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68716     {
68717       return !operator==( rhs );
68718     }
68719 #endif
68720 
68721 
68722 
68723   public:
68724     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
68725     const void* pNext = {};
68726     uint32_t attachmentInitialSampleLocationsCount = {};
68727     const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {};
68728     uint32_t postSubpassSampleLocationsCount = {};
68729     const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {};
68730 
68731   };
68732   static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" );
68733   static_assert( std::is_standard_layout<RenderPassSampleLocationsBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
68734 
68735   template <>
68736   struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
68737   {
68738     using Type = RenderPassSampleLocationsBeginInfoEXT;
68739   };
68740 
68741   struct RenderPassTransformBeginInfoQCOM
68742   {
68743     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
68744 
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68745     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity ) VULKAN_HPP_NOEXCEPT
68746       : transform( transform_ )
68747     {}
68748 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68749     RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
68750     {
68751       memcpy( &pNext, &rhs.pNext, sizeof( RenderPassTransformBeginInfoQCOM ) - offsetof( RenderPassTransformBeginInfoQCOM, pNext ) );
68752       return *this;
68753     }
68754 
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68755     RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
68756     {
68757       *this = rhs;
68758     }
68759 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68760     RenderPassTransformBeginInfoQCOM& operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
68761     {
68762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>(&rhs);
68763       return *this;
68764     }
68765 
setPNextVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68766     RenderPassTransformBeginInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68767     {
68768       pNext = pNext_;
68769       return *this;
68770     }
68771 
setTransformVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68772     RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
68773     {
68774       transform = transform_;
68775       return *this;
68776     }
68777 
68778 
operator VkRenderPassTransformBeginInfoQCOM const&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68779     operator VkRenderPassTransformBeginInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
68780     {
68781       return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>( this );
68782     }
68783 
operator VkRenderPassTransformBeginInfoQCOM&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68784     operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
68785     {
68786       return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>( this );
68787     }
68788 
68789 
68790 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68791     auto operator<=>( RenderPassTransformBeginInfoQCOM const& ) const = default;
68792 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68793     bool operator==( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
68794     {
68795       return ( sType == rhs.sType )
68796           && ( pNext == rhs.pNext )
68797           && ( transform == rhs.transform );
68798     }
68799 
operator !=VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM68800     bool operator!=( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
68801     {
68802       return !operator==( rhs );
68803     }
68804 #endif
68805 
68806 
68807 
68808   public:
68809     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
68810     void* pNext = {};
68811     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
68812 
68813   };
68814   static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), "struct and wrapper have different size!" );
68815   static_assert( std::is_standard_layout<RenderPassTransformBeginInfoQCOM>::value, "struct wrapper is not a standard layout!" );
68816 
68817   template <>
68818   struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
68819   {
68820     using Type = RenderPassTransformBeginInfoQCOM;
68821   };
68822 
68823   struct SamplerCreateInfo
68824   {
68825     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
68826 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo68827     VULKAN_HPP_CONSTEXPR SamplerCreateInfo( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {},
68828                                             VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
68829                                             VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
68830                                             VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest,
68831                                             VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
68832                                             VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
68833                                             VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
68834                                             float mipLodBias_ = {},
68835                                             VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {},
68836                                             float maxAnisotropy_ = {},
68837                                             VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {},
68838                                             VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
68839                                             float minLod_ = {},
68840                                             float maxLod_ = {},
68841                                             VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack,
68842                                             VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {} ) VULKAN_HPP_NOEXCEPT
68843       : flags( flags_ )
68844       , magFilter( magFilter_ )
68845       , minFilter( minFilter_ )
68846       , mipmapMode( mipmapMode_ )
68847       , addressModeU( addressModeU_ )
68848       , addressModeV( addressModeV_ )
68849       , addressModeW( addressModeW_ )
68850       , mipLodBias( mipLodBias_ )
68851       , anisotropyEnable( anisotropyEnable_ )
68852       , maxAnisotropy( maxAnisotropy_ )
68853       , compareEnable( compareEnable_ )
68854       , compareOp( compareOp_ )
68855       , minLod( minLod_ )
68856       , maxLod( maxLod_ )
68857       , borderColor( borderColor_ )
68858       , unnormalizedCoordinates( unnormalizedCoordinates_ )
68859     {}
68860 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo68861     SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68862     {
68863       memcpy( &pNext, &rhs.pNext, sizeof( SamplerCreateInfo ) - offsetof( SamplerCreateInfo, pNext ) );
68864       return *this;
68865     }
68866 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo68867     SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68868     {
68869       *this = rhs;
68870     }
68871 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo68872     SamplerCreateInfo& operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
68873     {
68874       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>(&rhs);
68875       return *this;
68876     }
68877 
setPNextVULKAN_HPP_NAMESPACE::SamplerCreateInfo68878     SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
68879     {
68880       pNext = pNext_;
68881       return *this;
68882     }
68883 
setFlagsVULKAN_HPP_NAMESPACE::SamplerCreateInfo68884     SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
68885     {
68886       flags = flags_;
68887       return *this;
68888     }
68889 
setMagFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo68890     SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
68891     {
68892       magFilter = magFilter_;
68893       return *this;
68894     }
68895 
setMinFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo68896     SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
68897     {
68898       minFilter = minFilter_;
68899       return *this;
68900     }
68901 
setMipmapModeVULKAN_HPP_NAMESPACE::SamplerCreateInfo68902     SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
68903     {
68904       mipmapMode = mipmapMode_;
68905       return *this;
68906     }
68907 
setAddressModeUVULKAN_HPP_NAMESPACE::SamplerCreateInfo68908     SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
68909     {
68910       addressModeU = addressModeU_;
68911       return *this;
68912     }
68913 
setAddressModeVVULKAN_HPP_NAMESPACE::SamplerCreateInfo68914     SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
68915     {
68916       addressModeV = addressModeV_;
68917       return *this;
68918     }
68919 
setAddressModeWVULKAN_HPP_NAMESPACE::SamplerCreateInfo68920     SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
68921     {
68922       addressModeW = addressModeW_;
68923       return *this;
68924     }
68925 
setMipLodBiasVULKAN_HPP_NAMESPACE::SamplerCreateInfo68926     SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
68927     {
68928       mipLodBias = mipLodBias_;
68929       return *this;
68930     }
68931 
setAnisotropyEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo68932     SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
68933     {
68934       anisotropyEnable = anisotropyEnable_;
68935       return *this;
68936     }
68937 
setMaxAnisotropyVULKAN_HPP_NAMESPACE::SamplerCreateInfo68938     SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
68939     {
68940       maxAnisotropy = maxAnisotropy_;
68941       return *this;
68942     }
68943 
setCompareEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo68944     SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
68945     {
68946       compareEnable = compareEnable_;
68947       return *this;
68948     }
68949 
setCompareOpVULKAN_HPP_NAMESPACE::SamplerCreateInfo68950     SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
68951     {
68952       compareOp = compareOp_;
68953       return *this;
68954     }
68955 
setMinLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo68956     SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
68957     {
68958       minLod = minLod_;
68959       return *this;
68960     }
68961 
setMaxLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo68962     SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
68963     {
68964       maxLod = maxLod_;
68965       return *this;
68966     }
68967 
setBorderColorVULKAN_HPP_NAMESPACE::SamplerCreateInfo68968     SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
68969     {
68970       borderColor = borderColor_;
68971       return *this;
68972     }
68973 
setUnnormalizedCoordinatesVULKAN_HPP_NAMESPACE::SamplerCreateInfo68974     SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
68975     {
68976       unnormalizedCoordinates = unnormalizedCoordinates_;
68977       return *this;
68978     }
68979 
68980 
operator VkSamplerCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerCreateInfo68981     operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT
68982     {
68983       return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
68984     }
68985 
operator VkSamplerCreateInfo&VULKAN_HPP_NAMESPACE::SamplerCreateInfo68986     operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
68987     {
68988       return *reinterpret_cast<VkSamplerCreateInfo*>( this );
68989     }
68990 
68991 
68992 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68993     auto operator<=>( SamplerCreateInfo const& ) const = default;
68994 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCreateInfo68995     bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
68996     {
68997       return ( sType == rhs.sType )
68998           && ( pNext == rhs.pNext )
68999           && ( flags == rhs.flags )
69000           && ( magFilter == rhs.magFilter )
69001           && ( minFilter == rhs.minFilter )
69002           && ( mipmapMode == rhs.mipmapMode )
69003           && ( addressModeU == rhs.addressModeU )
69004           && ( addressModeV == rhs.addressModeV )
69005           && ( addressModeW == rhs.addressModeW )
69006           && ( mipLodBias == rhs.mipLodBias )
69007           && ( anisotropyEnable == rhs.anisotropyEnable )
69008           && ( maxAnisotropy == rhs.maxAnisotropy )
69009           && ( compareEnable == rhs.compareEnable )
69010           && ( compareOp == rhs.compareOp )
69011           && ( minLod == rhs.minLod )
69012           && ( maxLod == rhs.maxLod )
69013           && ( borderColor == rhs.borderColor )
69014           && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
69015     }
69016 
operator !=VULKAN_HPP_NAMESPACE::SamplerCreateInfo69017     bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69018     {
69019       return !operator==( rhs );
69020     }
69021 #endif
69022 
69023 
69024 
69025   public:
69026     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
69027     const void* pNext = {};
69028     VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
69029     VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
69030     VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
69031     VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
69032     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
69033     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
69034     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
69035     float mipLodBias = {};
69036     VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
69037     float maxAnisotropy = {};
69038     VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
69039     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
69040     float minLod = {};
69041     float maxLod = {};
69042     VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
69043     VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
69044 
69045   };
69046   static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
69047   static_assert( std::is_standard_layout<SamplerCreateInfo>::value, "struct wrapper is not a standard layout!" );
69048 
69049   template <>
69050   struct CppType<StructureType, StructureType::eSamplerCreateInfo>
69051   {
69052     using Type = SamplerCreateInfo;
69053   };
69054 
69055   struct SamplerCustomBorderColorCreateInfoEXT
69056   {
69057     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
69058 
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69059     SamplerCustomBorderColorCreateInfoEXT( VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {},
69060                                            VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined ) VULKAN_HPP_NOEXCEPT
69061       : customBorderColor( customBorderColor_ )
69062       , format( format_ )
69063     {}
69064 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69065     SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69066     {
69067       memcpy( &pNext, &rhs.pNext, sizeof( SamplerCustomBorderColorCreateInfoEXT ) - offsetof( SamplerCustomBorderColorCreateInfoEXT, pNext ) );
69068       return *this;
69069     }
69070 
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69071     SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69072     {
69073       *this = rhs;
69074     }
69075 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69076     SamplerCustomBorderColorCreateInfoEXT& operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69077     {
69078       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>(&rhs);
69079       return *this;
69080     }
69081 
setPNextVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69082     SamplerCustomBorderColorCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69083     {
69084       pNext = pNext_;
69085       return *this;
69086     }
69087 
setCustomBorderColorVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69088     SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
69089     {
69090       customBorderColor = customBorderColor_;
69091       return *this;
69092     }
69093 
setFormatVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69094     SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
69095     {
69096       format = format_;
69097       return *this;
69098     }
69099 
69100 
operator VkSamplerCustomBorderColorCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69101     operator VkSamplerCustomBorderColorCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
69102     {
69103       return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>( this );
69104     }
69105 
operator VkSamplerCustomBorderColorCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT69106     operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
69107     {
69108       return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>( this );
69109     }
69110 
69111 
69112 
69113 
69114   public:
69115     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
69116     const void* pNext = {};
69117     VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
69118     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
69119 
69120   };
69121   static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), "struct and wrapper have different size!" );
69122   static_assert( std::is_standard_layout<SamplerCustomBorderColorCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
69123 
69124   template <>
69125   struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
69126   {
69127     using Type = SamplerCustomBorderColorCreateInfoEXT;
69128   };
69129 
69130   struct SamplerReductionModeCreateInfo
69131   {
69132     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
69133 
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69134     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage ) VULKAN_HPP_NOEXCEPT
69135       : reductionMode( reductionMode_ )
69136     {}
69137 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69138     SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69139     {
69140       memcpy( &pNext, &rhs.pNext, sizeof( SamplerReductionModeCreateInfo ) - offsetof( SamplerReductionModeCreateInfo, pNext ) );
69141       return *this;
69142     }
69143 
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69144     SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69145     {
69146       *this = rhs;
69147     }
69148 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69149     SamplerReductionModeCreateInfo& operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69150     {
69151       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>(&rhs);
69152       return *this;
69153     }
69154 
setPNextVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69155     SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69156     {
69157       pNext = pNext_;
69158       return *this;
69159     }
69160 
setReductionModeVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69161     SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
69162     {
69163       reductionMode = reductionMode_;
69164       return *this;
69165     }
69166 
69167 
operator VkSamplerReductionModeCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69168     operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
69169     {
69170       return *reinterpret_cast<const VkSamplerReductionModeCreateInfo*>( this );
69171     }
69172 
operator VkSamplerReductionModeCreateInfo&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69173     operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
69174     {
69175       return *reinterpret_cast<VkSamplerReductionModeCreateInfo*>( this );
69176     }
69177 
69178 
69179 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69180     auto operator<=>( SamplerReductionModeCreateInfo const& ) const = default;
69181 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69182     bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69183     {
69184       return ( sType == rhs.sType )
69185           && ( pNext == rhs.pNext )
69186           && ( reductionMode == rhs.reductionMode );
69187     }
69188 
operator !=VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo69189     bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69190     {
69191       return !operator==( rhs );
69192     }
69193 #endif
69194 
69195 
69196 
69197   public:
69198     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
69199     const void* pNext = {};
69200     VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
69201 
69202   };
69203   static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" );
69204   static_assert( std::is_standard_layout<SamplerReductionModeCreateInfo>::value, "struct wrapper is not a standard layout!" );
69205 
69206   template <>
69207   struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
69208   {
69209     using Type = SamplerReductionModeCreateInfo;
69210   };
69211 
69212   struct SamplerYcbcrConversionCreateInfo
69213   {
69214     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
69215 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69216     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
69217                                                            VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
69218                                                            VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
69219                                                            VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
69220                                                            VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
69221                                                            VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
69222                                                            VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
69223                                                            VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {} ) VULKAN_HPP_NOEXCEPT
69224       : format( format_ )
69225       , ycbcrModel( ycbcrModel_ )
69226       , ycbcrRange( ycbcrRange_ )
69227       , components( components_ )
69228       , xChromaOffset( xChromaOffset_ )
69229       , yChromaOffset( yChromaOffset_ )
69230       , chromaFilter( chromaFilter_ )
69231       , forceExplicitReconstruction( forceExplicitReconstruction_ )
69232     {}
69233 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69234     SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69235     {
69236       memcpy( &pNext, &rhs.pNext, sizeof( SamplerYcbcrConversionCreateInfo ) - offsetof( SamplerYcbcrConversionCreateInfo, pNext ) );
69237       return *this;
69238     }
69239 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69240     SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69241     {
69242       *this = rhs;
69243     }
69244 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69245     SamplerYcbcrConversionCreateInfo& operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69246     {
69247       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>(&rhs);
69248       return *this;
69249     }
69250 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69251     SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69252     {
69253       pNext = pNext_;
69254       return *this;
69255     }
69256 
setFormatVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69257     SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
69258     {
69259       format = format_;
69260       return *this;
69261     }
69262 
setYcbcrModelVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69263     SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
69264     {
69265       ycbcrModel = ycbcrModel_;
69266       return *this;
69267     }
69268 
setYcbcrRangeVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69269     SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
69270     {
69271       ycbcrRange = ycbcrRange_;
69272       return *this;
69273     }
69274 
setComponentsVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69275     SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
69276     {
69277       components = components_;
69278       return *this;
69279     }
69280 
setXChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69281     SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
69282     {
69283       xChromaOffset = xChromaOffset_;
69284       return *this;
69285     }
69286 
setYChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69287     SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
69288     {
69289       yChromaOffset = yChromaOffset_;
69290       return *this;
69291     }
69292 
setChromaFilterVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69293     SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
69294     {
69295       chromaFilter = chromaFilter_;
69296       return *this;
69297     }
69298 
setForceExplicitReconstructionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69299     SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
69300     {
69301       forceExplicitReconstruction = forceExplicitReconstruction_;
69302       return *this;
69303     }
69304 
69305 
operator VkSamplerYcbcrConversionCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69306     operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT
69307     {
69308       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
69309     }
69310 
operator VkSamplerYcbcrConversionCreateInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69311     operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
69312     {
69313       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
69314     }
69315 
69316 
69317 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69318     auto operator<=>( SamplerYcbcrConversionCreateInfo const& ) const = default;
69319 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69320     bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69321     {
69322       return ( sType == rhs.sType )
69323           && ( pNext == rhs.pNext )
69324           && ( format == rhs.format )
69325           && ( ycbcrModel == rhs.ycbcrModel )
69326           && ( ycbcrRange == rhs.ycbcrRange )
69327           && ( components == rhs.components )
69328           && ( xChromaOffset == rhs.xChromaOffset )
69329           && ( yChromaOffset == rhs.yChromaOffset )
69330           && ( chromaFilter == rhs.chromaFilter )
69331           && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
69332     }
69333 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo69334     bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69335     {
69336       return !operator==( rhs );
69337     }
69338 #endif
69339 
69340 
69341 
69342   public:
69343     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
69344     const void* pNext = {};
69345     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
69346     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
69347     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
69348     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
69349     VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
69350     VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
69351     VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
69352     VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
69353 
69354   };
69355   static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" );
69356   static_assert( std::is_standard_layout<SamplerYcbcrConversionCreateInfo>::value, "struct wrapper is not a standard layout!" );
69357 
69358   template <>
69359   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
69360   {
69361     using Type = SamplerYcbcrConversionCreateInfo;
69362   };
69363 
69364   struct SamplerYcbcrConversionImageFormatProperties
69365   {
69366     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
69367 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69368     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( uint32_t combinedImageSamplerDescriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT
69369       : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
69370     {}
69371 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69372     SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69373     {
69374       memcpy( &pNext, &rhs.pNext, sizeof( SamplerYcbcrConversionImageFormatProperties ) - offsetof( SamplerYcbcrConversionImageFormatProperties, pNext ) );
69375       return *this;
69376     }
69377 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69378     SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69379     {
69380       *this = rhs;
69381     }
69382 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69383     SamplerYcbcrConversionImageFormatProperties& operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69384     {
69385       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>(&rhs);
69386       return *this;
69387     }
69388 
69389 
operator VkSamplerYcbcrConversionImageFormatProperties const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69390     operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
69391     {
69392       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
69393     }
69394 
operator VkSamplerYcbcrConversionImageFormatProperties&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69395     operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
69396     {
69397       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
69398     }
69399 
69400 
69401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69402     auto operator<=>( SamplerYcbcrConversionImageFormatProperties const& ) const = default;
69403 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69404     bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
69405     {
69406       return ( sType == rhs.sType )
69407           && ( pNext == rhs.pNext )
69408           && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
69409     }
69410 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties69411     bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
69412     {
69413       return !operator==( rhs );
69414     }
69415 #endif
69416 
69417 
69418 
69419   public:
69420     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
69421     void* pNext = {};
69422     uint32_t combinedImageSamplerDescriptorCount = {};
69423 
69424   };
69425   static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" );
69426   static_assert( std::is_standard_layout<SamplerYcbcrConversionImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
69427 
69428   template <>
69429   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
69430   {
69431     using Type = SamplerYcbcrConversionImageFormatProperties;
69432   };
69433 
69434   struct SamplerYcbcrConversionInfo
69435   {
69436     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
69437 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69438     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {} ) VULKAN_HPP_NOEXCEPT
69439       : conversion( conversion_ )
69440     {}
69441 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69442     SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69443     {
69444       memcpy( &pNext, &rhs.pNext, sizeof( SamplerYcbcrConversionInfo ) - offsetof( SamplerYcbcrConversionInfo, pNext ) );
69445       return *this;
69446     }
69447 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69448     SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69449     {
69450       *this = rhs;
69451     }
69452 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69453     SamplerYcbcrConversionInfo& operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69454     {
69455       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>(&rhs);
69456       return *this;
69457     }
69458 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69459     SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69460     {
69461       pNext = pNext_;
69462       return *this;
69463     }
69464 
setConversionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69465     SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
69466     {
69467       conversion = conversion_;
69468       return *this;
69469     }
69470 
69471 
operator VkSamplerYcbcrConversionInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69472     operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT
69473     {
69474       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
69475     }
69476 
operator VkSamplerYcbcrConversionInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69477     operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
69478     {
69479       return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
69480     }
69481 
69482 
69483 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69484     auto operator<=>( SamplerYcbcrConversionInfo const& ) const = default;
69485 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69486     bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69487     {
69488       return ( sType == rhs.sType )
69489           && ( pNext == rhs.pNext )
69490           && ( conversion == rhs.conversion );
69491     }
69492 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo69493     bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69494     {
69495       return !operator==( rhs );
69496     }
69497 #endif
69498 
69499 
69500 
69501   public:
69502     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
69503     const void* pNext = {};
69504     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
69505 
69506   };
69507   static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" );
69508   static_assert( std::is_standard_layout<SamplerYcbcrConversionInfo>::value, "struct wrapper is not a standard layout!" );
69509 
69510   template <>
69511   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
69512   {
69513     using Type = SamplerYcbcrConversionInfo;
69514   };
69515 
69516   struct SemaphoreCreateInfo
69517   {
69518     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
69519 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69520     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
69521       : flags( flags_ )
69522     {}
69523 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69524     SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69525     {
69526       memcpy( &pNext, &rhs.pNext, sizeof( SemaphoreCreateInfo ) - offsetof( SemaphoreCreateInfo, pNext ) );
69527       return *this;
69528     }
69529 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69530     SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69531     {
69532       *this = rhs;
69533     }
69534 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69535     SemaphoreCreateInfo& operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69536     {
69537       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>(&rhs);
69538       return *this;
69539     }
69540 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69541     SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69542     {
69543       pNext = pNext_;
69544       return *this;
69545     }
69546 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69547     SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
69548     {
69549       flags = flags_;
69550       return *this;
69551     }
69552 
69553 
operator VkSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69554     operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
69555     {
69556       return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
69557     }
69558 
operator VkSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69559     operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
69560     {
69561       return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
69562     }
69563 
69564 
69565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69566     auto operator<=>( SemaphoreCreateInfo const& ) const = default;
69567 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69568     bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69569     {
69570       return ( sType == rhs.sType )
69571           && ( pNext == rhs.pNext )
69572           && ( flags == rhs.flags );
69573     }
69574 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo69575     bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69576     {
69577       return !operator==( rhs );
69578     }
69579 #endif
69580 
69581 
69582 
69583   public:
69584     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
69585     const void* pNext = {};
69586     VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
69587 
69588   };
69589   static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
69590   static_assert( std::is_standard_layout<SemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
69591 
69592   template <>
69593   struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
69594   {
69595     using Type = SemaphoreCreateInfo;
69596   };
69597 
69598   struct SemaphoreGetFdInfoKHR
69599   {
69600     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
69601 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69602     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
69603                                                 VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
69604       : semaphore( semaphore_ )
69605       , handleType( handleType_ )
69606     {}
69607 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69608     SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69609     {
69610       memcpy( &pNext, &rhs.pNext, sizeof( SemaphoreGetFdInfoKHR ) - offsetof( SemaphoreGetFdInfoKHR, pNext ) );
69611       return *this;
69612     }
69613 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69614     SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69615     {
69616       *this = rhs;
69617     }
69618 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69619     SemaphoreGetFdInfoKHR& operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69620     {
69621       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>(&rhs);
69622       return *this;
69623     }
69624 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69625     SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69626     {
69627       pNext = pNext_;
69628       return *this;
69629     }
69630 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69631     SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
69632     {
69633       semaphore = semaphore_;
69634       return *this;
69635     }
69636 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69637     SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
69638     {
69639       handleType = handleType_;
69640       return *this;
69641     }
69642 
69643 
operator VkSemaphoreGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69644     operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
69645     {
69646       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
69647     }
69648 
operator VkSemaphoreGetFdInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69649     operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
69650     {
69651       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
69652     }
69653 
69654 
69655 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69656     auto operator<=>( SemaphoreGetFdInfoKHR const& ) const = default;
69657 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69658     bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69659     {
69660       return ( sType == rhs.sType )
69661           && ( pNext == rhs.pNext )
69662           && ( semaphore == rhs.semaphore )
69663           && ( handleType == rhs.handleType );
69664     }
69665 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR69666     bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69667     {
69668       return !operator==( rhs );
69669     }
69670 #endif
69671 
69672 
69673 
69674   public:
69675     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
69676     const void* pNext = {};
69677     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
69678     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
69679 
69680   };
69681   static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" );
69682   static_assert( std::is_standard_layout<SemaphoreGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
69683 
69684   template <>
69685   struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
69686   {
69687     using Type = SemaphoreGetFdInfoKHR;
69688   };
69689 
69690 #ifdef VK_USE_PLATFORM_WIN32_KHR
69691   struct SemaphoreGetWin32HandleInfoKHR
69692   {
69693     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
69694 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69695     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
69696                                                          VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
69697       : semaphore( semaphore_ )
69698       , handleType( handleType_ )
69699     {}
69700 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69701     SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69702     {
69703       memcpy( &pNext, &rhs.pNext, sizeof( SemaphoreGetWin32HandleInfoKHR ) - offsetof( SemaphoreGetWin32HandleInfoKHR, pNext ) );
69704       return *this;
69705     }
69706 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69707     SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69708     {
69709       *this = rhs;
69710     }
69711 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69712     SemaphoreGetWin32HandleInfoKHR& operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69713     {
69714       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>(&rhs);
69715       return *this;
69716     }
69717 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69718     SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69719     {
69720       pNext = pNext_;
69721       return *this;
69722     }
69723 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69724     SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
69725     {
69726       semaphore = semaphore_;
69727       return *this;
69728     }
69729 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69730     SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
69731     {
69732       handleType = handleType_;
69733       return *this;
69734     }
69735 
69736 
operator VkSemaphoreGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69737     operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
69738     {
69739       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
69740     }
69741 
operator VkSemaphoreGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69742     operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
69743     {
69744       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
69745     }
69746 
69747 
69748 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69749     auto operator<=>( SemaphoreGetWin32HandleInfoKHR const& ) const = default;
69750 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69751     bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69752     {
69753       return ( sType == rhs.sType )
69754           && ( pNext == rhs.pNext )
69755           && ( semaphore == rhs.semaphore )
69756           && ( handleType == rhs.handleType );
69757     }
69758 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR69759     bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69760     {
69761       return !operator==( rhs );
69762     }
69763 #endif
69764 
69765 
69766 
69767   public:
69768     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
69769     const void* pNext = {};
69770     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
69771     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
69772 
69773   };
69774   static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
69775   static_assert( std::is_standard_layout<SemaphoreGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
69776 
69777   template <>
69778   struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
69779   {
69780     using Type = SemaphoreGetWin32HandleInfoKHR;
69781   };
69782 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
69783 
69784   struct SemaphoreSignalInfo
69785   {
69786     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
69787 
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69788     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
69789                                               uint64_t value_ = {} ) VULKAN_HPP_NOEXCEPT
69790       : semaphore( semaphore_ )
69791       , value( value_ )
69792     {}
69793 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69794     SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69795     {
69796       memcpy( &pNext, &rhs.pNext, sizeof( SemaphoreSignalInfo ) - offsetof( SemaphoreSignalInfo, pNext ) );
69797       return *this;
69798     }
69799 
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69800     SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69801     {
69802       *this = rhs;
69803     }
69804 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69805     SemaphoreSignalInfo& operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69806     {
69807       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>(&rhs);
69808       return *this;
69809     }
69810 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69811     SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69812     {
69813       pNext = pNext_;
69814       return *this;
69815     }
69816 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69817     SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
69818     {
69819       semaphore = semaphore_;
69820       return *this;
69821     }
69822 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69823     SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
69824     {
69825       value = value_;
69826       return *this;
69827     }
69828 
69829 
operator VkSemaphoreSignalInfo const&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69830     operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT
69831     {
69832       return *reinterpret_cast<const VkSemaphoreSignalInfo*>( this );
69833     }
69834 
operator VkSemaphoreSignalInfo&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69835     operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
69836     {
69837       return *reinterpret_cast<VkSemaphoreSignalInfo*>( this );
69838     }
69839 
69840 
69841 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69842     auto operator<=>( SemaphoreSignalInfo const& ) const = default;
69843 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69844     bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69845     {
69846       return ( sType == rhs.sType )
69847           && ( pNext == rhs.pNext )
69848           && ( semaphore == rhs.semaphore )
69849           && ( value == rhs.value );
69850     }
69851 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo69852     bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69853     {
69854       return !operator==( rhs );
69855     }
69856 #endif
69857 
69858 
69859 
69860   public:
69861     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
69862     const void* pNext = {};
69863     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
69864     uint64_t value = {};
69865 
69866   };
69867   static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" );
69868   static_assert( std::is_standard_layout<SemaphoreSignalInfo>::value, "struct wrapper is not a standard layout!" );
69869 
69870   template <>
69871   struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
69872   {
69873     using Type = SemaphoreSignalInfo;
69874   };
69875 
69876   struct SemaphoreTypeCreateInfo
69877   {
69878     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
69879 
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69880     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary,
69881                                                   uint64_t initialValue_ = {} ) VULKAN_HPP_NOEXCEPT
69882       : semaphoreType( semaphoreType_ )
69883       , initialValue( initialValue_ )
69884     {}
69885 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69886     SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69887     {
69888       memcpy( &pNext, &rhs.pNext, sizeof( SemaphoreTypeCreateInfo ) - offsetof( SemaphoreTypeCreateInfo, pNext ) );
69889       return *this;
69890     }
69891 
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69892     SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69893     {
69894       *this = rhs;
69895     }
69896 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69897     SemaphoreTypeCreateInfo& operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69898     {
69899       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>(&rhs);
69900       return *this;
69901     }
69902 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69903     SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
69904     {
69905       pNext = pNext_;
69906       return *this;
69907     }
69908 
setSemaphoreTypeVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69909     SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
69910     {
69911       semaphoreType = semaphoreType_;
69912       return *this;
69913     }
69914 
setInitialValueVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69915     SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
69916     {
69917       initialValue = initialValue_;
69918       return *this;
69919     }
69920 
69921 
operator VkSemaphoreTypeCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69922     operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
69923     {
69924       return *reinterpret_cast<const VkSemaphoreTypeCreateInfo*>( this );
69925     }
69926 
operator VkSemaphoreTypeCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69927     operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
69928     {
69929       return *reinterpret_cast<VkSemaphoreTypeCreateInfo*>( this );
69930     }
69931 
69932 
69933 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69934     auto operator<=>( SemaphoreTypeCreateInfo const& ) const = default;
69935 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69936     bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69937     {
69938       return ( sType == rhs.sType )
69939           && ( pNext == rhs.pNext )
69940           && ( semaphoreType == rhs.semaphoreType )
69941           && ( initialValue == rhs.initialValue );
69942     }
69943 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo69944     bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
69945     {
69946       return !operator==( rhs );
69947     }
69948 #endif
69949 
69950 
69951 
69952   public:
69953     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
69954     const void* pNext = {};
69955     VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
69956     uint64_t initialValue = {};
69957 
69958   };
69959   static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" );
69960   static_assert( std::is_standard_layout<SemaphoreTypeCreateInfo>::value, "struct wrapper is not a standard layout!" );
69961 
69962   template <>
69963   struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
69964   {
69965     using Type = SemaphoreTypeCreateInfo;
69966   };
69967 
69968   struct SemaphoreWaitInfo
69969   {
69970     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
69971 
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo69972     VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {},
69973                                             uint32_t semaphoreCount_ = {},
69974                                             const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ = {},
69975                                             const uint64_t* pValues_ = {} ) VULKAN_HPP_NOEXCEPT
69976       : flags( flags_ )
69977       , semaphoreCount( semaphoreCount_ )
69978       , pSemaphores( pSemaphores_ )
69979       , pValues( pValues_ )
69980     {}
69981 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo69982     SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69983     {
69984       memcpy( &pNext, &rhs.pNext, sizeof( SemaphoreWaitInfo ) - offsetof( SemaphoreWaitInfo, pNext ) );
69985       return *this;
69986     }
69987 
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo69988     SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69989     {
69990       *this = rhs;
69991     }
69992 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo69993     SemaphoreWaitInfo& operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
69994     {
69995       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>(&rhs);
69996       return *this;
69997     }
69998 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo69999     SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
70000     {
70001       pNext = pNext_;
70002       return *this;
70003     }
70004 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70005     SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
70006     {
70007       flags = flags_;
70008       return *this;
70009     }
70010 
setSemaphoreCountVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70011     SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
70012     {
70013       semaphoreCount = semaphoreCount_;
70014       return *this;
70015     }
70016 
setPSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70017     SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT
70018     {
70019       pSemaphores = pSemaphores_;
70020       return *this;
70021     }
70022 
setPValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70023     SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT
70024     {
70025       pValues = pValues_;
70026       return *this;
70027     }
70028 
70029 
operator VkSemaphoreWaitInfo const&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70030     operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT
70031     {
70032       return *reinterpret_cast<const VkSemaphoreWaitInfo*>( this );
70033     }
70034 
operator VkSemaphoreWaitInfo&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70035     operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
70036     {
70037       return *reinterpret_cast<VkSemaphoreWaitInfo*>( this );
70038     }
70039 
70040 
70041 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70042     auto operator<=>( SemaphoreWaitInfo const& ) const = default;
70043 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70044     bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
70045     {
70046       return ( sType == rhs.sType )
70047           && ( pNext == rhs.pNext )
70048           && ( flags == rhs.flags )
70049           && ( semaphoreCount == rhs.semaphoreCount )
70050           && ( pSemaphores == rhs.pSemaphores )
70051           && ( pValues == rhs.pValues );
70052     }
70053 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo70054     bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
70055     {
70056       return !operator==( rhs );
70057     }
70058 #endif
70059 
70060 
70061 
70062   public:
70063     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
70064     const void* pNext = {};
70065     VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
70066     uint32_t semaphoreCount = {};
70067     const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {};
70068     const uint64_t* pValues = {};
70069 
70070   };
70071   static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" );
70072   static_assert( std::is_standard_layout<SemaphoreWaitInfo>::value, "struct wrapper is not a standard layout!" );
70073 
70074   template <>
70075   struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
70076   {
70077     using Type = SemaphoreWaitInfo;
70078   };
70079 
70080   struct SetStateFlagsIndirectCommandNV
70081   {
70082 
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70083     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( uint32_t data_ = {} ) VULKAN_HPP_NOEXCEPT
70084       : data( data_ )
70085     {}
70086 
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70087     SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
70088     {
70089       *this = rhs;
70090     }
70091 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70092     SetStateFlagsIndirectCommandNV& operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
70093     {
70094       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>(&rhs);
70095       return *this;
70096     }
70097 
setDataVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70098     SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
70099     {
70100       data = data_;
70101       return *this;
70102     }
70103 
70104 
operator VkSetStateFlagsIndirectCommandNV const&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70105     operator VkSetStateFlagsIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
70106     {
70107       return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV*>( this );
70108     }
70109 
operator VkSetStateFlagsIndirectCommandNV&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70110     operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
70111     {
70112       return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV*>( this );
70113     }
70114 
70115 
70116 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70117     auto operator<=>( SetStateFlagsIndirectCommandNV const& ) const = default;
70118 #else
operator ==VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70119     bool operator==( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70120     {
70121       return ( data == rhs.data );
70122     }
70123 
operator !=VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV70124     bool operator!=( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70125     {
70126       return !operator==( rhs );
70127     }
70128 #endif
70129 
70130 
70131 
70132   public:
70133     uint32_t data = {};
70134 
70135   };
70136   static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), "struct and wrapper have different size!" );
70137   static_assert( std::is_standard_layout<SetStateFlagsIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
70138 
70139   struct ShaderModuleCreateInfo
70140   {
70141     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
70142 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70143     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {},
70144                                                  size_t codeSize_ = {},
70145                                                  const uint32_t* pCode_ = {} ) VULKAN_HPP_NOEXCEPT
70146       : flags( flags_ )
70147       , codeSize( codeSize_ )
70148       , pCode( pCode_ )
70149     {}
70150 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70151     ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
70152     {
70153       memcpy( &pNext, &rhs.pNext, sizeof( ShaderModuleCreateInfo ) - offsetof( ShaderModuleCreateInfo, pNext ) );
70154       return *this;
70155     }
70156 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70157     ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
70158     {
70159       *this = rhs;
70160     }
70161 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70162     ShaderModuleCreateInfo& operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
70163     {
70164       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>(&rhs);
70165       return *this;
70166     }
70167 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70168     ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
70169     {
70170       pNext = pNext_;
70171       return *this;
70172     }
70173 
setFlagsVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70174     ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
70175     {
70176       flags = flags_;
70177       return *this;
70178     }
70179 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70180     ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
70181     {
70182       codeSize = codeSize_;
70183       return *this;
70184     }
70185 
setPCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70186     ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT
70187     {
70188       pCode = pCode_;
70189       return *this;
70190     }
70191 
70192 
operator VkShaderModuleCreateInfo const&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70193     operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT
70194     {
70195       return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
70196     }
70197 
operator VkShaderModuleCreateInfo&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70198     operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
70199     {
70200       return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
70201     }
70202 
70203 
70204 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70205     auto operator<=>( ShaderModuleCreateInfo const& ) const = default;
70206 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70207     bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
70208     {
70209       return ( sType == rhs.sType )
70210           && ( pNext == rhs.pNext )
70211           && ( flags == rhs.flags )
70212           && ( codeSize == rhs.codeSize )
70213           && ( pCode == rhs.pCode );
70214     }
70215 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo70216     bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
70217     {
70218       return !operator==( rhs );
70219     }
70220 #endif
70221 
70222 
70223 
70224   public:
70225     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
70226     const void* pNext = {};
70227     VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
70228     size_t codeSize = {};
70229     const uint32_t* pCode = {};
70230 
70231   };
70232   static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" );
70233   static_assert( std::is_standard_layout<ShaderModuleCreateInfo>::value, "struct wrapper is not a standard layout!" );
70234 
70235   template <>
70236   struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
70237   {
70238     using Type = ShaderModuleCreateInfo;
70239   };
70240 
70241   struct ShaderModuleValidationCacheCreateInfoEXT
70242   {
70243     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
70244 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70245     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {} ) VULKAN_HPP_NOEXCEPT
70246       : validationCache( validationCache_ )
70247     {}
70248 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70249     ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70250     {
70251       memcpy( &pNext, &rhs.pNext, sizeof( ShaderModuleValidationCacheCreateInfoEXT ) - offsetof( ShaderModuleValidationCacheCreateInfoEXT, pNext ) );
70252       return *this;
70253     }
70254 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70255     ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70256     {
70257       *this = rhs;
70258     }
70259 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70260     ShaderModuleValidationCacheCreateInfoEXT& operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70261     {
70262       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>(&rhs);
70263       return *this;
70264     }
70265 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70266     ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
70267     {
70268       pNext = pNext_;
70269       return *this;
70270     }
70271 
setValidationCacheVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70272     ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
70273     {
70274       validationCache = validationCache_;
70275       return *this;
70276     }
70277 
70278 
operator VkShaderModuleValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70279     operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
70280     {
70281       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
70282     }
70283 
operator VkShaderModuleValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70284     operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
70285     {
70286       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
70287     }
70288 
70289 
70290 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70291     auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const& ) const = default;
70292 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70293     bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70294     {
70295       return ( sType == rhs.sType )
70296           && ( pNext == rhs.pNext )
70297           && ( validationCache == rhs.validationCache );
70298     }
70299 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT70300     bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70301     {
70302       return !operator==( rhs );
70303     }
70304 #endif
70305 
70306 
70307 
70308   public:
70309     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
70310     const void* pNext = {};
70311     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
70312 
70313   };
70314   static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
70315   static_assert( std::is_standard_layout<ShaderModuleValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
70316 
70317   template <>
70318   struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
70319   {
70320     using Type = ShaderModuleValidationCacheCreateInfoEXT;
70321   };
70322 
70323   struct ShaderResourceUsageAMD
70324   {
70325 
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD70326     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( uint32_t numUsedVgprs_ = {},
70327                                                  uint32_t numUsedSgprs_ = {},
70328                                                  uint32_t ldsSizePerLocalWorkGroup_ = {},
70329                                                  size_t ldsUsageSizeInBytes_ = {},
70330                                                  size_t scratchMemUsageInBytes_ = {} ) VULKAN_HPP_NOEXCEPT
70331       : numUsedVgprs( numUsedVgprs_ )
70332       , numUsedSgprs( numUsedSgprs_ )
70333       , ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ )
70334       , ldsUsageSizeInBytes( ldsUsageSizeInBytes_ )
70335       , scratchMemUsageInBytes( scratchMemUsageInBytes_ )
70336     {}
70337 
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD70338     ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
70339     {
70340       *this = rhs;
70341     }
70342 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD70343     ShaderResourceUsageAMD& operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
70344     {
70345       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>(&rhs);
70346       return *this;
70347     }
70348 
70349 
operator VkShaderResourceUsageAMD const&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD70350     operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT
70351     {
70352       return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
70353     }
70354 
operator VkShaderResourceUsageAMD&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD70355     operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
70356     {
70357       return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
70358     }
70359 
70360 
70361 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70362     auto operator<=>( ShaderResourceUsageAMD const& ) const = default;
70363 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD70364     bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70365     {
70366       return ( numUsedVgprs == rhs.numUsedVgprs )
70367           && ( numUsedSgprs == rhs.numUsedSgprs )
70368           && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
70369           && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
70370           && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
70371     }
70372 
operator !=VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD70373     bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70374     {
70375       return !operator==( rhs );
70376     }
70377 #endif
70378 
70379 
70380 
70381   public:
70382     uint32_t numUsedVgprs = {};
70383     uint32_t numUsedSgprs = {};
70384     uint32_t ldsSizePerLocalWorkGroup = {};
70385     size_t ldsUsageSizeInBytes = {};
70386     size_t scratchMemUsageInBytes = {};
70387 
70388   };
70389   static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" );
70390   static_assert( std::is_standard_layout<ShaderResourceUsageAMD>::value, "struct wrapper is not a standard layout!" );
70391 
70392   struct ShaderStatisticsInfoAMD
70393   {
70394 
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD70395     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {},
70396                                                      VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {},
70397                                                      uint32_t numPhysicalVgprs_ = {},
70398                                                      uint32_t numPhysicalSgprs_ = {},
70399                                                      uint32_t numAvailableVgprs_ = {},
70400                                                      uint32_t numAvailableSgprs_ = {},
70401                                                      std::array<uint32_t,3> const& computeWorkGroupSize_ = {} ) VULKAN_HPP_NOEXCEPT
70402       : shaderStageMask( shaderStageMask_ )
70403       , resourceUsage( resourceUsage_ )
70404       , numPhysicalVgprs( numPhysicalVgprs_ )
70405       , numPhysicalSgprs( numPhysicalSgprs_ )
70406       , numAvailableVgprs( numAvailableVgprs_ )
70407       , numAvailableSgprs( numAvailableSgprs_ )
70408       , computeWorkGroupSize( computeWorkGroupSize_ )
70409     {}
70410 
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD70411     ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
70412     {
70413       *this = rhs;
70414     }
70415 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD70416     ShaderStatisticsInfoAMD& operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
70417     {
70418       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>(&rhs);
70419       return *this;
70420     }
70421 
70422 
operator VkShaderStatisticsInfoAMD const&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD70423     operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT
70424     {
70425       return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
70426     }
70427 
operator VkShaderStatisticsInfoAMD&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD70428     operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
70429     {
70430       return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
70431     }
70432 
70433 
70434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70435     auto operator<=>( ShaderStatisticsInfoAMD const& ) const = default;
70436 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD70437     bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70438     {
70439       return ( shaderStageMask == rhs.shaderStageMask )
70440           && ( resourceUsage == rhs.resourceUsage )
70441           && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
70442           && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
70443           && ( numAvailableVgprs == rhs.numAvailableVgprs )
70444           && ( numAvailableSgprs == rhs.numAvailableSgprs )
70445           && ( computeWorkGroupSize == rhs.computeWorkGroupSize );
70446     }
70447 
operator !=VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD70448     bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70449     {
70450       return !operator==( rhs );
70451     }
70452 #endif
70453 
70454 
70455 
70456   public:
70457     VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
70458     VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
70459     uint32_t numPhysicalVgprs = {};
70460     uint32_t numPhysicalSgprs = {};
70461     uint32_t numAvailableVgprs = {};
70462     uint32_t numAvailableSgprs = {};
70463     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
70464 
70465   };
70466   static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" );
70467   static_assert( std::is_standard_layout<ShaderStatisticsInfoAMD>::value, "struct wrapper is not a standard layout!" );
70468 
70469   struct SharedPresentSurfaceCapabilitiesKHR
70470   {
70471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
70472 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70473     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT
70474       : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
70475     {}
70476 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70477     SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70478     {
70479       memcpy( &pNext, &rhs.pNext, sizeof( SharedPresentSurfaceCapabilitiesKHR ) - offsetof( SharedPresentSurfaceCapabilitiesKHR, pNext ) );
70480       return *this;
70481     }
70482 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70483     SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70484     {
70485       *this = rhs;
70486     }
70487 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70488     SharedPresentSurfaceCapabilitiesKHR& operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70489     {
70490       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>(&rhs);
70491       return *this;
70492     }
70493 
70494 
operator VkSharedPresentSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70495     operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
70496     {
70497       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
70498     }
70499 
operator VkSharedPresentSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70500     operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
70501     {
70502       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
70503     }
70504 
70505 
70506 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70507     auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const& ) const = default;
70508 #else
operator ==VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70509     bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70510     {
70511       return ( sType == rhs.sType )
70512           && ( pNext == rhs.pNext )
70513           && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
70514     }
70515 
operator !=VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR70516     bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70517     {
70518       return !operator==( rhs );
70519     }
70520 #endif
70521 
70522 
70523 
70524   public:
70525     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
70526     void* pNext = {};
70527     VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
70528 
70529   };
70530   static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
70531   static_assert( std::is_standard_layout<SharedPresentSurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
70532 
70533   template <>
70534   struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
70535   {
70536     using Type = SharedPresentSurfaceCapabilitiesKHR;
70537   };
70538 
70539   struct SparseImageFormatProperties
70540   {
70541 
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties70542     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
70543                                                       VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {},
70544                                                       VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
70545       : aspectMask( aspectMask_ )
70546       , imageGranularity( imageGranularity_ )
70547       , flags( flags_ )
70548     {}
70549 
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties70550     SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70551     {
70552       *this = rhs;
70553     }
70554 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties70555     SparseImageFormatProperties& operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70556     {
70557       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>(&rhs);
70558       return *this;
70559     }
70560 
70561 
operator VkSparseImageFormatProperties const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties70562     operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
70563     {
70564       return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
70565     }
70566 
operator VkSparseImageFormatProperties&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties70567     operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
70568     {
70569       return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
70570     }
70571 
70572 
70573 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70574     auto operator<=>( SparseImageFormatProperties const& ) const = default;
70575 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties70576     bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70577     {
70578       return ( aspectMask == rhs.aspectMask )
70579           && ( imageGranularity == rhs.imageGranularity )
70580           && ( flags == rhs.flags );
70581     }
70582 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties70583     bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70584     {
70585       return !operator==( rhs );
70586     }
70587 #endif
70588 
70589 
70590 
70591   public:
70592     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
70593     VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
70594     VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
70595 
70596   };
70597   static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" );
70598   static_assert( std::is_standard_layout<SparseImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
70599 
70600   struct SparseImageFormatProperties2
70601   {
70602     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
70603 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270604     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {} ) VULKAN_HPP_NOEXCEPT
70605       : properties( properties_ )
70606     {}
70607 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270608     SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
70609     {
70610       memcpy( &pNext, &rhs.pNext, sizeof( SparseImageFormatProperties2 ) - offsetof( SparseImageFormatProperties2, pNext ) );
70611       return *this;
70612     }
70613 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270614     SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
70615     {
70616       *this = rhs;
70617     }
70618 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270619     SparseImageFormatProperties2& operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
70620     {
70621       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>(&rhs);
70622       return *this;
70623     }
70624 
70625 
operator VkSparseImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270626     operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
70627     {
70628       return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
70629     }
70630 
operator VkSparseImageFormatProperties2&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270631     operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
70632     {
70633       return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
70634     }
70635 
70636 
70637 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70638     auto operator<=>( SparseImageFormatProperties2 const& ) const = default;
70639 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270640     bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
70641     {
70642       return ( sType == rhs.sType )
70643           && ( pNext == rhs.pNext )
70644           && ( properties == rhs.properties );
70645     }
70646 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties270647     bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
70648     {
70649       return !operator==( rhs );
70650     }
70651 #endif
70652 
70653 
70654 
70655   public:
70656     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
70657     void* pNext = {};
70658     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
70659 
70660   };
70661   static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" );
70662   static_assert( std::is_standard_layout<SparseImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
70663 
70664   template <>
70665   struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
70666   {
70667     using Type = SparseImageFormatProperties2;
70668   };
70669 
70670   struct SparseImageMemoryRequirements
70671   {
70672 
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements70673     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {},
70674                                                         uint32_t imageMipTailFirstLod_ = {},
70675                                                         VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {},
70676                                                         VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {},
70677                                                         VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {} ) VULKAN_HPP_NOEXCEPT
70678       : formatProperties( formatProperties_ )
70679       , imageMipTailFirstLod( imageMipTailFirstLod_ )
70680       , imageMipTailSize( imageMipTailSize_ )
70681       , imageMipTailOffset( imageMipTailOffset_ )
70682       , imageMipTailStride( imageMipTailStride_ )
70683     {}
70684 
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements70685     SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
70686     {
70687       *this = rhs;
70688     }
70689 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements70690     SparseImageMemoryRequirements& operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
70691     {
70692       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>(&rhs);
70693       return *this;
70694     }
70695 
70696 
operator VkSparseImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements70697     operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
70698     {
70699       return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
70700     }
70701 
operator VkSparseImageMemoryRequirements&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements70702     operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
70703     {
70704       return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
70705     }
70706 
70707 
70708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70709     auto operator<=>( SparseImageMemoryRequirements const& ) const = default;
70710 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements70711     bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
70712     {
70713       return ( formatProperties == rhs.formatProperties )
70714           && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
70715           && ( imageMipTailSize == rhs.imageMipTailSize )
70716           && ( imageMipTailOffset == rhs.imageMipTailOffset )
70717           && ( imageMipTailStride == rhs.imageMipTailStride );
70718     }
70719 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements70720     bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
70721     {
70722       return !operator==( rhs );
70723     }
70724 #endif
70725 
70726 
70727 
70728   public:
70729     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
70730     uint32_t imageMipTailFirstLod = {};
70731     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
70732     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
70733     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
70734 
70735   };
70736   static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" );
70737   static_assert( std::is_standard_layout<SparseImageMemoryRequirements>::value, "struct wrapper is not a standard layout!" );
70738 
70739   struct SparseImageMemoryRequirements2
70740   {
70741     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
70742 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270743     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {} ) VULKAN_HPP_NOEXCEPT
70744       : memoryRequirements( memoryRequirements_ )
70745     {}
70746 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270747     SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
70748     {
70749       memcpy( &pNext, &rhs.pNext, sizeof( SparseImageMemoryRequirements2 ) - offsetof( SparseImageMemoryRequirements2, pNext ) );
70750       return *this;
70751     }
70752 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270753     SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
70754     {
70755       *this = rhs;
70756     }
70757 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270758     SparseImageMemoryRequirements2& operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
70759     {
70760       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>(&rhs);
70761       return *this;
70762     }
70763 
70764 
operator VkSparseImageMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270765     operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
70766     {
70767       return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
70768     }
70769 
operator VkSparseImageMemoryRequirements2&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270770     operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
70771     {
70772       return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
70773     }
70774 
70775 
70776 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70777     auto operator<=>( SparseImageMemoryRequirements2 const& ) const = default;
70778 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270779     bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
70780     {
70781       return ( sType == rhs.sType )
70782           && ( pNext == rhs.pNext )
70783           && ( memoryRequirements == rhs.memoryRequirements );
70784     }
70785 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements270786     bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
70787     {
70788       return !operator==( rhs );
70789     }
70790 #endif
70791 
70792 
70793 
70794   public:
70795     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
70796     void* pNext = {};
70797     VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
70798 
70799   };
70800   static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" );
70801   static_assert( std::is_standard_layout<SparseImageMemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
70802 
70803   template <>
70804   struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
70805   {
70806     using Type = SparseImageMemoryRequirements2;
70807   };
70808 
70809 #ifdef VK_USE_PLATFORM_GGP
70810   struct StreamDescriptorSurfaceCreateInfoGGP
70811   {
70812     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
70813 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70814     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {},
70815                                                                GgpStreamDescriptor streamDescriptor_ = {} ) VULKAN_HPP_NOEXCEPT
70816       : flags( flags_ )
70817       , streamDescriptor( streamDescriptor_ )
70818     {}
70819 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70820     StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
70821     {
70822       memcpy( &pNext, &rhs.pNext, sizeof( StreamDescriptorSurfaceCreateInfoGGP ) - offsetof( StreamDescriptorSurfaceCreateInfoGGP, pNext ) );
70823       return *this;
70824     }
70825 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70826     StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
70827     {
70828       *this = rhs;
70829     }
70830 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70831     StreamDescriptorSurfaceCreateInfoGGP& operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
70832     {
70833       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>(&rhs);
70834       return *this;
70835     }
70836 
setPNextVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70837     StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
70838     {
70839       pNext = pNext_;
70840       return *this;
70841     }
70842 
setFlagsVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70843     StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
70844     {
70845       flags = flags_;
70846       return *this;
70847     }
70848 
setStreamDescriptorVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70849     StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
70850     {
70851       streamDescriptor = streamDescriptor_;
70852       return *this;
70853     }
70854 
70855 
operator VkStreamDescriptorSurfaceCreateInfoGGP const&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70856     operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT
70857     {
70858       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
70859     }
70860 
operator VkStreamDescriptorSurfaceCreateInfoGGP&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70861     operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
70862     {
70863       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
70864     }
70865 
70866 
70867 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70868     auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const& ) const = default;
70869 #else
operator ==VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70870     bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
70871     {
70872       return ( sType == rhs.sType )
70873           && ( pNext == rhs.pNext )
70874           && ( flags == rhs.flags )
70875           && ( streamDescriptor == rhs.streamDescriptor );
70876     }
70877 
operator !=VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP70878     bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
70879     {
70880       return !operator==( rhs );
70881     }
70882 #endif
70883 
70884 
70885 
70886   public:
70887     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
70888     const void* pNext = {};
70889     VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
70890     GgpStreamDescriptor streamDescriptor = {};
70891 
70892   };
70893   static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" );
70894   static_assert( std::is_standard_layout<StreamDescriptorSurfaceCreateInfoGGP>::value, "struct wrapper is not a standard layout!" );
70895 
70896   template <>
70897   struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
70898   {
70899     using Type = StreamDescriptorSurfaceCreateInfoGGP;
70900   };
70901 #endif /*VK_USE_PLATFORM_GGP*/
70902 
70903 #ifdef VK_ENABLE_BETA_EXTENSIONS
70904   struct StridedBufferRegionKHR
70905   {
70906 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70907     VULKAN_HPP_CONSTEXPR StridedBufferRegionKHR( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
70908                                                  VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
70909                                                  VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {},
70910                                                  VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
70911       : buffer( buffer_ )
70912       , offset( offset_ )
70913       , stride( stride_ )
70914       , size( size_ )
70915     {}
70916 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70917     explicit StridedBufferRegionKHR( IndirectCommandsStreamNV const& indirectCommandsStreamNV,
70918                                      VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {},
70919                                      VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} )
70920       : buffer( indirectCommandsStreamNV.buffer )
70921       , offset( indirectCommandsStreamNV.offset )
70922       , stride( stride_ )
70923       , size( size_ )
70924     {}
70925 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70926     StridedBufferRegionKHR( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70927     {
70928       *this = rhs;
70929     }
70930 
operator =VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70931     StridedBufferRegionKHR& operator=( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70932     {
70933       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR const *>(&rhs);
70934       return *this;
70935     }
70936 
setBufferVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70937     StridedBufferRegionKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
70938     {
70939       buffer = buffer_;
70940       return *this;
70941     }
70942 
setOffsetVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70943     StridedBufferRegionKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
70944     {
70945       offset = offset_;
70946       return *this;
70947     }
70948 
setStrideVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70949     StridedBufferRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
70950     {
70951       stride = stride_;
70952       return *this;
70953     }
70954 
setSizeVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70955     StridedBufferRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
70956     {
70957       size = size_;
70958       return *this;
70959     }
70960 
70961 
operator VkStridedBufferRegionKHR const&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70962     operator VkStridedBufferRegionKHR const&() const VULKAN_HPP_NOEXCEPT
70963     {
70964       return *reinterpret_cast<const VkStridedBufferRegionKHR*>( this );
70965     }
70966 
operator VkStridedBufferRegionKHR&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70967     operator VkStridedBufferRegionKHR &() VULKAN_HPP_NOEXCEPT
70968     {
70969       return *reinterpret_cast<VkStridedBufferRegionKHR*>( this );
70970     }
70971 
70972 
70973 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70974     auto operator<=>( StridedBufferRegionKHR const& ) const = default;
70975 #else
operator ==VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70976     bool operator==( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70977     {
70978       return ( buffer == rhs.buffer )
70979           && ( offset == rhs.offset )
70980           && ( stride == rhs.stride )
70981           && ( size == rhs.size );
70982     }
70983 
operator !=VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR70984     bool operator!=( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70985     {
70986       return !operator==( rhs );
70987     }
70988 #endif
70989 
70990 
70991 
70992   public:
70993     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
70994     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
70995     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
70996     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
70997 
70998   };
70999   static_assert( sizeof( StridedBufferRegionKHR ) == sizeof( VkStridedBufferRegionKHR ), "struct and wrapper have different size!" );
71000   static_assert( std::is_standard_layout<StridedBufferRegionKHR>::value, "struct wrapper is not a standard layout!" );
71001 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
71002 
71003   struct SubmitInfo
71004   {
71005     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
71006 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo71007     VULKAN_HPP_CONSTEXPR SubmitInfo( uint32_t waitSemaphoreCount_ = {},
71008                                      const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {},
71009                                      const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ = {},
71010                                      uint32_t commandBufferCount_ = {},
71011                                      const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ = {},
71012                                      uint32_t signalSemaphoreCount_ = {},
71013                                      const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {} ) VULKAN_HPP_NOEXCEPT
71014       : waitSemaphoreCount( waitSemaphoreCount_ )
71015       , pWaitSemaphores( pWaitSemaphores_ )
71016       , pWaitDstStageMask( pWaitDstStageMask_ )
71017       , commandBufferCount( commandBufferCount_ )
71018       , pCommandBuffers( pCommandBuffers_ )
71019       , signalSemaphoreCount( signalSemaphoreCount_ )
71020       , pSignalSemaphores( pSignalSemaphores_ )
71021     {}
71022 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo71023     SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71024     {
71025       memcpy( &pNext, &rhs.pNext, sizeof( SubmitInfo ) - offsetof( SubmitInfo, pNext ) );
71026       return *this;
71027     }
71028 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo71029     SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71030     {
71031       *this = rhs;
71032     }
71033 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo71034     SubmitInfo& operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71035     {
71036       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>(&rhs);
71037       return *this;
71038     }
71039 
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo71040     SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
71041     {
71042       pNext = pNext_;
71043       return *this;
71044     }
71045 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo71046     SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
71047     {
71048       waitSemaphoreCount = waitSemaphoreCount_;
71049       return *this;
71050     }
71051 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo71052     SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
71053     {
71054       pWaitSemaphores = pWaitSemaphores_;
71055       return *this;
71056     }
71057 
setPWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo71058     SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
71059     {
71060       pWaitDstStageMask = pWaitDstStageMask_;
71061       return *this;
71062     }
71063 
setCommandBufferCountVULKAN_HPP_NAMESPACE::SubmitInfo71064     SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
71065     {
71066       commandBufferCount = commandBufferCount_;
71067       return *this;
71068     }
71069 
setPCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo71070     SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
71071     {
71072       pCommandBuffers = pCommandBuffers_;
71073       return *this;
71074     }
71075 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo71076     SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
71077     {
71078       signalSemaphoreCount = signalSemaphoreCount_;
71079       return *this;
71080     }
71081 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo71082     SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
71083     {
71084       pSignalSemaphores = pSignalSemaphores_;
71085       return *this;
71086     }
71087 
71088 
operator VkSubmitInfo const&VULKAN_HPP_NAMESPACE::SubmitInfo71089     operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
71090     {
71091       return *reinterpret_cast<const VkSubmitInfo*>( this );
71092     }
71093 
operator VkSubmitInfo&VULKAN_HPP_NAMESPACE::SubmitInfo71094     operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
71095     {
71096       return *reinterpret_cast<VkSubmitInfo*>( this );
71097     }
71098 
71099 
71100 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71101     auto operator<=>( SubmitInfo const& ) const = default;
71102 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo71103     bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
71104     {
71105       return ( sType == rhs.sType )
71106           && ( pNext == rhs.pNext )
71107           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
71108           && ( pWaitSemaphores == rhs.pWaitSemaphores )
71109           && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
71110           && ( commandBufferCount == rhs.commandBufferCount )
71111           && ( pCommandBuffers == rhs.pCommandBuffers )
71112           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
71113           && ( pSignalSemaphores == rhs.pSignalSemaphores );
71114     }
71115 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo71116     bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
71117     {
71118       return !operator==( rhs );
71119     }
71120 #endif
71121 
71122 
71123 
71124   public:
71125     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
71126     const void* pNext = {};
71127     uint32_t waitSemaphoreCount = {};
71128     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
71129     const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {};
71130     uint32_t commandBufferCount = {};
71131     const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {};
71132     uint32_t signalSemaphoreCount = {};
71133     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
71134 
71135   };
71136   static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
71137   static_assert( std::is_standard_layout<SubmitInfo>::value, "struct wrapper is not a standard layout!" );
71138 
71139   template <>
71140   struct CppType<StructureType, StructureType::eSubmitInfo>
71141   {
71142     using Type = SubmitInfo;
71143   };
71144 
71145   struct SubpassBeginInfo
71146   {
71147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
71148 
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo71149     VULKAN_HPP_CONSTEXPR SubpassBeginInfo( VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline ) VULKAN_HPP_NOEXCEPT
71150       : contents( contents_ )
71151     {}
71152 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo71153     SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71154     {
71155       memcpy( &pNext, &rhs.pNext, sizeof( SubpassBeginInfo ) - offsetof( SubpassBeginInfo, pNext ) );
71156       return *this;
71157     }
71158 
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo71159     SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71160     {
71161       *this = rhs;
71162     }
71163 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo71164     SubpassBeginInfo& operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71165     {
71166       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>(&rhs);
71167       return *this;
71168     }
71169 
setPNextVULKAN_HPP_NAMESPACE::SubpassBeginInfo71170     SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
71171     {
71172       pNext = pNext_;
71173       return *this;
71174     }
71175 
setContentsVULKAN_HPP_NAMESPACE::SubpassBeginInfo71176     SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
71177     {
71178       contents = contents_;
71179       return *this;
71180     }
71181 
71182 
operator VkSubpassBeginInfo const&VULKAN_HPP_NAMESPACE::SubpassBeginInfo71183     operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
71184     {
71185       return *reinterpret_cast<const VkSubpassBeginInfo*>( this );
71186     }
71187 
operator VkSubpassBeginInfo&VULKAN_HPP_NAMESPACE::SubpassBeginInfo71188     operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
71189     {
71190       return *reinterpret_cast<VkSubpassBeginInfo*>( this );
71191     }
71192 
71193 
71194 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71195     auto operator<=>( SubpassBeginInfo const& ) const = default;
71196 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassBeginInfo71197     bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
71198     {
71199       return ( sType == rhs.sType )
71200           && ( pNext == rhs.pNext )
71201           && ( contents == rhs.contents );
71202     }
71203 
operator !=VULKAN_HPP_NAMESPACE::SubpassBeginInfo71204     bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
71205     {
71206       return !operator==( rhs );
71207     }
71208 #endif
71209 
71210 
71211 
71212   public:
71213     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
71214     const void* pNext = {};
71215     VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
71216 
71217   };
71218   static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" );
71219   static_assert( std::is_standard_layout<SubpassBeginInfo>::value, "struct wrapper is not a standard layout!" );
71220 
71221   template <>
71222   struct CppType<StructureType, StructureType::eSubpassBeginInfo>
71223   {
71224     using Type = SubpassBeginInfo;
71225   };
71226 
71227   struct SubpassDescriptionDepthStencilResolve
71228   {
71229     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
71230 
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71231     VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
71232                                                                 VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
71233                                                                 const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ = {} ) VULKAN_HPP_NOEXCEPT
71234       : depthResolveMode( depthResolveMode_ )
71235       , stencilResolveMode( stencilResolveMode_ )
71236       , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
71237     {}
71238 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71239     SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
71240     {
71241       memcpy( &pNext, &rhs.pNext, sizeof( SubpassDescriptionDepthStencilResolve ) - offsetof( SubpassDescriptionDepthStencilResolve, pNext ) );
71242       return *this;
71243     }
71244 
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71245     SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
71246     {
71247       *this = rhs;
71248     }
71249 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71250     SubpassDescriptionDepthStencilResolve& operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
71251     {
71252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>(&rhs);
71253       return *this;
71254     }
71255 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71256     SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
71257     {
71258       pNext = pNext_;
71259       return *this;
71260     }
71261 
setDepthResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71262     SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
71263     {
71264       depthResolveMode = depthResolveMode_;
71265       return *this;
71266     }
71267 
setStencilResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71268     SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
71269     {
71270       stencilResolveMode = stencilResolveMode_;
71271       return *this;
71272     }
71273 
setPDepthStencilResolveAttachmentVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71274     SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
71275     {
71276       pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
71277       return *this;
71278     }
71279 
71280 
operator VkSubpassDescriptionDepthStencilResolve const&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71281     operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT
71282     {
71283       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>( this );
71284     }
71285 
operator VkSubpassDescriptionDepthStencilResolve&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71286     operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
71287     {
71288       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>( this );
71289     }
71290 
71291 
71292 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71293     auto operator<=>( SubpassDescriptionDepthStencilResolve const& ) const = default;
71294 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71295     bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
71296     {
71297       return ( sType == rhs.sType )
71298           && ( pNext == rhs.pNext )
71299           && ( depthResolveMode == rhs.depthResolveMode )
71300           && ( stencilResolveMode == rhs.stencilResolveMode )
71301           && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
71302     }
71303 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve71304     bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
71305     {
71306       return !operator==( rhs );
71307     }
71308 #endif
71309 
71310 
71311 
71312   public:
71313     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
71314     const void* pNext = {};
71315     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
71316     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
71317     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {};
71318 
71319   };
71320   static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" );
71321   static_assert( std::is_standard_layout<SubpassDescriptionDepthStencilResolve>::value, "struct wrapper is not a standard layout!" );
71322 
71323   template <>
71324   struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
71325   {
71326     using Type = SubpassDescriptionDepthStencilResolve;
71327   };
71328 
71329   struct SubpassEndInfo
71330   {
71331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
71332 
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo71333     VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT
71334     {}
71335 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo71336     SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71337     {
71338       memcpy( &pNext, &rhs.pNext, sizeof( SubpassEndInfo ) - offsetof( SubpassEndInfo, pNext ) );
71339       return *this;
71340     }
71341 
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo71342     SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71343     {
71344       *this = rhs;
71345     }
71346 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo71347     SubpassEndInfo& operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
71348     {
71349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>(&rhs);
71350       return *this;
71351     }
71352 
setPNextVULKAN_HPP_NAMESPACE::SubpassEndInfo71353     SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
71354     {
71355       pNext = pNext_;
71356       return *this;
71357     }
71358 
71359 
operator VkSubpassEndInfo const&VULKAN_HPP_NAMESPACE::SubpassEndInfo71360     operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT
71361     {
71362       return *reinterpret_cast<const VkSubpassEndInfo*>( this );
71363     }
71364 
operator VkSubpassEndInfo&VULKAN_HPP_NAMESPACE::SubpassEndInfo71365     operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
71366     {
71367       return *reinterpret_cast<VkSubpassEndInfo*>( this );
71368     }
71369 
71370 
71371 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71372     auto operator<=>( SubpassEndInfo const& ) const = default;
71373 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassEndInfo71374     bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
71375     {
71376       return ( sType == rhs.sType )
71377           && ( pNext == rhs.pNext );
71378     }
71379 
operator !=VULKAN_HPP_NAMESPACE::SubpassEndInfo71380     bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
71381     {
71382       return !operator==( rhs );
71383     }
71384 #endif
71385 
71386 
71387 
71388   public:
71389     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
71390     const void* pNext = {};
71391 
71392   };
71393   static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" );
71394   static_assert( std::is_standard_layout<SubpassEndInfo>::value, "struct wrapper is not a standard layout!" );
71395 
71396   template <>
71397   struct CppType<StructureType, StructureType::eSubpassEndInfo>
71398   {
71399     using Type = SubpassEndInfo;
71400   };
71401 
71402   struct SurfaceCapabilities2EXT
71403   {
71404     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
71405 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71406     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( uint32_t minImageCount_ = {},
71407                                                   uint32_t maxImageCount_ = {},
71408                                                   VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {},
71409                                                   VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {},
71410                                                   VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {},
71411                                                   uint32_t maxImageArrayLayers_ = {},
71412                                                   VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
71413                                                   VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
71414                                                   VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {},
71415                                                   VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {},
71416                                                   VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {} ) VULKAN_HPP_NOEXCEPT
71417       : minImageCount( minImageCount_ )
71418       , maxImageCount( maxImageCount_ )
71419       , currentExtent( currentExtent_ )
71420       , minImageExtent( minImageExtent_ )
71421       , maxImageExtent( maxImageExtent_ )
71422       , maxImageArrayLayers( maxImageArrayLayers_ )
71423       , supportedTransforms( supportedTransforms_ )
71424       , currentTransform( currentTransform_ )
71425       , supportedCompositeAlpha( supportedCompositeAlpha_ )
71426       , supportedUsageFlags( supportedUsageFlags_ )
71427       , supportedSurfaceCounters( supportedSurfaceCounters_ )
71428     {}
71429 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71430     SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
71431     {
71432       memcpy( &pNext, &rhs.pNext, sizeof( SurfaceCapabilities2EXT ) - offsetof( SurfaceCapabilities2EXT, pNext ) );
71433       return *this;
71434     }
71435 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71436     SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
71437     {
71438       *this = rhs;
71439     }
71440 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71441     SurfaceCapabilities2EXT& operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
71442     {
71443       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>(&rhs);
71444       return *this;
71445     }
71446 
71447 
operator VkSurfaceCapabilities2EXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71448     operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT
71449     {
71450       return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
71451     }
71452 
operator VkSurfaceCapabilities2EXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71453     operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
71454     {
71455       return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
71456     }
71457 
71458 
71459 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71460     auto operator<=>( SurfaceCapabilities2EXT const& ) const = default;
71461 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71462     bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71463     {
71464       return ( sType == rhs.sType )
71465           && ( pNext == rhs.pNext )
71466           && ( minImageCount == rhs.minImageCount )
71467           && ( maxImageCount == rhs.maxImageCount )
71468           && ( currentExtent == rhs.currentExtent )
71469           && ( minImageExtent == rhs.minImageExtent )
71470           && ( maxImageExtent == rhs.maxImageExtent )
71471           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
71472           && ( supportedTransforms == rhs.supportedTransforms )
71473           && ( currentTransform == rhs.currentTransform )
71474           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
71475           && ( supportedUsageFlags == rhs.supportedUsageFlags )
71476           && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
71477     }
71478 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT71479     bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71480     {
71481       return !operator==( rhs );
71482     }
71483 #endif
71484 
71485 
71486 
71487   public:
71488     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
71489     void* pNext = {};
71490     uint32_t minImageCount = {};
71491     uint32_t maxImageCount = {};
71492     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
71493     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
71494     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
71495     uint32_t maxImageArrayLayers = {};
71496     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
71497     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
71498     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
71499     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
71500     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
71501 
71502   };
71503   static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" );
71504   static_assert( std::is_standard_layout<SurfaceCapabilities2EXT>::value, "struct wrapper is not a standard layout!" );
71505 
71506   template <>
71507   struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
71508   {
71509     using Type = SurfaceCapabilities2EXT;
71510   };
71511 
71512   struct SurfaceCapabilitiesKHR
71513   {
71514 
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR71515     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( uint32_t minImageCount_ = {},
71516                                                  uint32_t maxImageCount_ = {},
71517                                                  VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {},
71518                                                  VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {},
71519                                                  VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {},
71520                                                  uint32_t maxImageArrayLayers_ = {},
71521                                                  VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
71522                                                  VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
71523                                                  VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {},
71524                                                  VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT
71525       : minImageCount( minImageCount_ )
71526       , maxImageCount( maxImageCount_ )
71527       , currentExtent( currentExtent_ )
71528       , minImageExtent( minImageExtent_ )
71529       , maxImageExtent( maxImageExtent_ )
71530       , maxImageArrayLayers( maxImageArrayLayers_ )
71531       , supportedTransforms( supportedTransforms_ )
71532       , currentTransform( currentTransform_ )
71533       , supportedCompositeAlpha( supportedCompositeAlpha_ )
71534       , supportedUsageFlags( supportedUsageFlags_ )
71535     {}
71536 
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR71537     SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71538     {
71539       *this = rhs;
71540     }
71541 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR71542     SurfaceCapabilitiesKHR& operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71543     {
71544       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>(&rhs);
71545       return *this;
71546     }
71547 
71548 
operator VkSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR71549     operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
71550     {
71551       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
71552     }
71553 
operator VkSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR71554     operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
71555     {
71556       return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
71557     }
71558 
71559 
71560 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71561     auto operator<=>( SurfaceCapabilitiesKHR const& ) const = default;
71562 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR71563     bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71564     {
71565       return ( minImageCount == rhs.minImageCount )
71566           && ( maxImageCount == rhs.maxImageCount )
71567           && ( currentExtent == rhs.currentExtent )
71568           && ( minImageExtent == rhs.minImageExtent )
71569           && ( maxImageExtent == rhs.maxImageExtent )
71570           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
71571           && ( supportedTransforms == rhs.supportedTransforms )
71572           && ( currentTransform == rhs.currentTransform )
71573           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
71574           && ( supportedUsageFlags == rhs.supportedUsageFlags );
71575     }
71576 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR71577     bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71578     {
71579       return !operator==( rhs );
71580     }
71581 #endif
71582 
71583 
71584 
71585   public:
71586     uint32_t minImageCount = {};
71587     uint32_t maxImageCount = {};
71588     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
71589     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
71590     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
71591     uint32_t maxImageArrayLayers = {};
71592     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
71593     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
71594     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
71595     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
71596 
71597   };
71598   static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
71599   static_assert( std::is_standard_layout<SurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
71600 
71601   struct SurfaceCapabilities2KHR
71602   {
71603     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
71604 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71605     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {} ) VULKAN_HPP_NOEXCEPT
71606       : surfaceCapabilities( surfaceCapabilities_ )
71607     {}
71608 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71609     SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
71610     {
71611       memcpy( &pNext, &rhs.pNext, sizeof( SurfaceCapabilities2KHR ) - offsetof( SurfaceCapabilities2KHR, pNext ) );
71612       return *this;
71613     }
71614 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71615     SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
71616     {
71617       *this = rhs;
71618     }
71619 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71620     SurfaceCapabilities2KHR& operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
71621     {
71622       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>(&rhs);
71623       return *this;
71624     }
71625 
71626 
operator VkSurfaceCapabilities2KHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71627     operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
71628     {
71629       return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
71630     }
71631 
operator VkSurfaceCapabilities2KHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71632     operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
71633     {
71634       return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
71635     }
71636 
71637 
71638 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71639     auto operator<=>( SurfaceCapabilities2KHR const& ) const = default;
71640 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71641     bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71642     {
71643       return ( sType == rhs.sType )
71644           && ( pNext == rhs.pNext )
71645           && ( surfaceCapabilities == rhs.surfaceCapabilities );
71646     }
71647 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR71648     bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71649     {
71650       return !operator==( rhs );
71651     }
71652 #endif
71653 
71654 
71655 
71656   public:
71657     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
71658     void* pNext = {};
71659     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
71660 
71661   };
71662   static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" );
71663   static_assert( std::is_standard_layout<SurfaceCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
71664 
71665   template <>
71666   struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
71667   {
71668     using Type = SurfaceCapabilities2KHR;
71669   };
71670 
71671 #ifdef VK_USE_PLATFORM_WIN32_KHR
71672   struct SurfaceCapabilitiesFullScreenExclusiveEXT
71673   {
71674     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
71675 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71676     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {} ) VULKAN_HPP_NOEXCEPT
71677       : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
71678     {}
71679 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71680     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71681     {
71682       memcpy( &pNext, &rhs.pNext, sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) - offsetof( SurfaceCapabilitiesFullScreenExclusiveEXT, pNext ) );
71683       return *this;
71684     }
71685 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71686     SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71687     {
71688       *this = rhs;
71689     }
71690 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71691     SurfaceCapabilitiesFullScreenExclusiveEXT& operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71692     {
71693       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>(&rhs);
71694       return *this;
71695     }
71696 
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71697     SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71698     {
71699       pNext = pNext_;
71700       return *this;
71701     }
71702 
setFullScreenExclusiveSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71703     SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
71704     {
71705       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
71706       return *this;
71707     }
71708 
71709 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71710     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT
71711     {
71712       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
71713     }
71714 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71715     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
71716     {
71717       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
71718     }
71719 
71720 
71721 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71722     auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const& ) const = default;
71723 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71724     bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71725     {
71726       return ( sType == rhs.sType )
71727           && ( pNext == rhs.pNext )
71728           && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
71729     }
71730 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT71731     bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71732     {
71733       return !operator==( rhs );
71734     }
71735 #endif
71736 
71737 
71738 
71739   public:
71740     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
71741     void* pNext = {};
71742     VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
71743 
71744   };
71745   static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" );
71746   static_assert( std::is_standard_layout<SurfaceCapabilitiesFullScreenExclusiveEXT>::value, "struct wrapper is not a standard layout!" );
71747 
71748   template <>
71749   struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
71750   {
71751     using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
71752   };
71753 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71754 
71755   struct SurfaceFormatKHR
71756   {
71757 
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR71758     VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
71759                                            VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear ) VULKAN_HPP_NOEXCEPT
71760       : format( format_ )
71761       , colorSpace( colorSpace_ )
71762     {}
71763 
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR71764     SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71765     {
71766       *this = rhs;
71767     }
71768 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR71769     SurfaceFormatKHR& operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71770     {
71771       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>(&rhs);
71772       return *this;
71773     }
71774 
71775 
operator VkSurfaceFormatKHR const&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR71776     operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT
71777     {
71778       return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
71779     }
71780 
operator VkSurfaceFormatKHR&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR71781     operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
71782     {
71783       return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
71784     }
71785 
71786 
71787 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71788     auto operator<=>( SurfaceFormatKHR const& ) const = default;
71789 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormatKHR71790     bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71791     {
71792       return ( format == rhs.format )
71793           && ( colorSpace == rhs.colorSpace );
71794     }
71795 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormatKHR71796     bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71797     {
71798       return !operator==( rhs );
71799     }
71800 #endif
71801 
71802 
71803 
71804   public:
71805     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
71806     VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
71807 
71808   };
71809   static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" );
71810   static_assert( std::is_standard_layout<SurfaceFormatKHR>::value, "struct wrapper is not a standard layout!" );
71811 
71812   struct SurfaceFormat2KHR
71813   {
71814     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
71815 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71816     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {} ) VULKAN_HPP_NOEXCEPT
71817       : surfaceFormat( surfaceFormat_ )
71818     {}
71819 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71820     SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
71821     {
71822       memcpy( &pNext, &rhs.pNext, sizeof( SurfaceFormat2KHR ) - offsetof( SurfaceFormat2KHR, pNext ) );
71823       return *this;
71824     }
71825 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71826     SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
71827     {
71828       *this = rhs;
71829     }
71830 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71831     SurfaceFormat2KHR& operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
71832     {
71833       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>(&rhs);
71834       return *this;
71835     }
71836 
71837 
operator VkSurfaceFormat2KHR const&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71838     operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT
71839     {
71840       return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
71841     }
71842 
operator VkSurfaceFormat2KHR&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71843     operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
71844     {
71845       return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
71846     }
71847 
71848 
71849 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71850     auto operator<=>( SurfaceFormat2KHR const& ) const = default;
71851 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71852     bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71853     {
71854       return ( sType == rhs.sType )
71855           && ( pNext == rhs.pNext )
71856           && ( surfaceFormat == rhs.surfaceFormat );
71857     }
71858 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR71859     bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71860     {
71861       return !operator==( rhs );
71862     }
71863 #endif
71864 
71865 
71866 
71867   public:
71868     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
71869     void* pNext = {};
71870     VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
71871 
71872   };
71873   static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" );
71874   static_assert( std::is_standard_layout<SurfaceFormat2KHR>::value, "struct wrapper is not a standard layout!" );
71875 
71876   template <>
71877   struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
71878   {
71879     using Type = SurfaceFormat2KHR;
71880   };
71881 
71882 #ifdef VK_USE_PLATFORM_WIN32_KHR
71883   struct SurfaceFullScreenExclusiveInfoEXT
71884   {
71885     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
71886 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71887     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault ) VULKAN_HPP_NOEXCEPT
71888       : fullScreenExclusive( fullScreenExclusive_ )
71889     {}
71890 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71891     SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71892     {
71893       memcpy( &pNext, &rhs.pNext, sizeof( SurfaceFullScreenExclusiveInfoEXT ) - offsetof( SurfaceFullScreenExclusiveInfoEXT, pNext ) );
71894       return *this;
71895     }
71896 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71897     SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71898     {
71899       *this = rhs;
71900     }
71901 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71902     SurfaceFullScreenExclusiveInfoEXT& operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71903     {
71904       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>(&rhs);
71905       return *this;
71906     }
71907 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71908     SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71909     {
71910       pNext = pNext_;
71911       return *this;
71912     }
71913 
setFullScreenExclusiveVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71914     SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
71915     {
71916       fullScreenExclusive = fullScreenExclusive_;
71917       return *this;
71918     }
71919 
71920 
operator VkSurfaceFullScreenExclusiveInfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71921     operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT
71922     {
71923       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
71924     }
71925 
operator VkSurfaceFullScreenExclusiveInfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71926     operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
71927     {
71928       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
71929     }
71930 
71931 
71932 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71933     auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const& ) const = default;
71934 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71935     bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71936     {
71937       return ( sType == rhs.sType )
71938           && ( pNext == rhs.pNext )
71939           && ( fullScreenExclusive == rhs.fullScreenExclusive );
71940     }
71941 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT71942     bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71943     {
71944       return !operator==( rhs );
71945     }
71946 #endif
71947 
71948 
71949 
71950   public:
71951     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
71952     void* pNext = {};
71953     VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
71954 
71955   };
71956   static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" );
71957   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveInfoEXT>::value, "struct wrapper is not a standard layout!" );
71958 
71959   template <>
71960   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
71961   {
71962     using Type = SurfaceFullScreenExclusiveInfoEXT;
71963   };
71964 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71965 
71966 #ifdef VK_USE_PLATFORM_WIN32_KHR
71967   struct SurfaceFullScreenExclusiveWin32InfoEXT
71968   {
71969     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
71970 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT71971     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = {} ) VULKAN_HPP_NOEXCEPT
71972       : hmonitor( hmonitor_ )
71973     {}
71974 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT71975     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71976     {
71977       memcpy( &pNext, &rhs.pNext, sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) - offsetof( SurfaceFullScreenExclusiveWin32InfoEXT, pNext ) );
71978       return *this;
71979     }
71980 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT71981     SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71982     {
71983       *this = rhs;
71984     }
71985 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT71986     SurfaceFullScreenExclusiveWin32InfoEXT& operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71987     {
71988       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>(&rhs);
71989       return *this;
71990     }
71991 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT71992     SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
71993     {
71994       pNext = pNext_;
71995       return *this;
71996     }
71997 
setHmonitorVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT71998     SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
71999     {
72000       hmonitor = hmonitor_;
72001       return *this;
72002     }
72003 
72004 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT72005     operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT
72006     {
72007       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
72008     }
72009 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT72010     operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
72011     {
72012       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
72013     }
72014 
72015 
72016 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72017     auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const& ) const = default;
72018 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT72019     bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72020     {
72021       return ( sType == rhs.sType )
72022           && ( pNext == rhs.pNext )
72023           && ( hmonitor == rhs.hmonitor );
72024     }
72025 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT72026     bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72027     {
72028       return !operator==( rhs );
72029     }
72030 #endif
72031 
72032 
72033 
72034   public:
72035     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
72036     const void* pNext = {};
72037     HMONITOR hmonitor = {};
72038 
72039   };
72040   static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" );
72041   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveWin32InfoEXT>::value, "struct wrapper is not a standard layout!" );
72042 
72043   template <>
72044   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
72045   {
72046     using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
72047   };
72048 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
72049 
72050   struct SurfaceProtectedCapabilitiesKHR
72051   {
72052     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
72053 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72054     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {} ) VULKAN_HPP_NOEXCEPT
72055       : supportsProtected( supportsProtected_ )
72056     {}
72057 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72058     SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72059     {
72060       memcpy( &pNext, &rhs.pNext, sizeof( SurfaceProtectedCapabilitiesKHR ) - offsetof( SurfaceProtectedCapabilitiesKHR, pNext ) );
72061       return *this;
72062     }
72063 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72064     SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72065     {
72066       *this = rhs;
72067     }
72068 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72069     SurfaceProtectedCapabilitiesKHR& operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72070     {
72071       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>(&rhs);
72072       return *this;
72073     }
72074 
setPNextVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72075     SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72076     {
72077       pNext = pNext_;
72078       return *this;
72079     }
72080 
setSupportsProtectedVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72081     SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
72082     {
72083       supportsProtected = supportsProtected_;
72084       return *this;
72085     }
72086 
72087 
operator VkSurfaceProtectedCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72088     operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
72089     {
72090       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
72091     }
72092 
operator VkSurfaceProtectedCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72093     operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
72094     {
72095       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
72096     }
72097 
72098 
72099 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72100     auto operator<=>( SurfaceProtectedCapabilitiesKHR const& ) const = default;
72101 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72102     bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
72103     {
72104       return ( sType == rhs.sType )
72105           && ( pNext == rhs.pNext )
72106           && ( supportsProtected == rhs.supportsProtected );
72107     }
72108 
operator !=VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR72109     bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
72110     {
72111       return !operator==( rhs );
72112     }
72113 #endif
72114 
72115 
72116 
72117   public:
72118     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
72119     const void* pNext = {};
72120     VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
72121 
72122   };
72123   static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" );
72124   static_assert( std::is_standard_layout<SurfaceProtectedCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
72125 
72126   template <>
72127   struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
72128   {
72129     using Type = SurfaceProtectedCapabilitiesKHR;
72130   };
72131 
72132   struct SwapchainCounterCreateInfoEXT
72133   {
72134     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
72135 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72136     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {} ) VULKAN_HPP_NOEXCEPT
72137       : surfaceCounters( surfaceCounters_ )
72138     {}
72139 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72140     SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72141     {
72142       memcpy( &pNext, &rhs.pNext, sizeof( SwapchainCounterCreateInfoEXT ) - offsetof( SwapchainCounterCreateInfoEXT, pNext ) );
72143       return *this;
72144     }
72145 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72146     SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72147     {
72148       *this = rhs;
72149     }
72150 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72151     SwapchainCounterCreateInfoEXT& operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72152     {
72153       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>(&rhs);
72154       return *this;
72155     }
72156 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72157     SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72158     {
72159       pNext = pNext_;
72160       return *this;
72161     }
72162 
setSurfaceCountersVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72163     SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
72164     {
72165       surfaceCounters = surfaceCounters_;
72166       return *this;
72167     }
72168 
72169 
operator VkSwapchainCounterCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72170     operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
72171     {
72172       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
72173     }
72174 
operator VkSwapchainCounterCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72175     operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
72176     {
72177       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
72178     }
72179 
72180 
72181 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72182     auto operator<=>( SwapchainCounterCreateInfoEXT const& ) const = default;
72183 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72184     bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72185     {
72186       return ( sType == rhs.sType )
72187           && ( pNext == rhs.pNext )
72188           && ( surfaceCounters == rhs.surfaceCounters );
72189     }
72190 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT72191     bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72192     {
72193       return !operator==( rhs );
72194     }
72195 #endif
72196 
72197 
72198 
72199   public:
72200     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
72201     const void* pNext = {};
72202     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
72203 
72204   };
72205   static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" );
72206   static_assert( std::is_standard_layout<SwapchainCounterCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
72207 
72208   template <>
72209   struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
72210   {
72211     using Type = SwapchainCounterCreateInfoEXT;
72212   };
72213 
72214   struct SwapchainCreateInfoKHR
72215   {
72216     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
72217 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72218     VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {},
72219                                                  VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {},
72220                                                  uint32_t minImageCount_ = {},
72221                                                  VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
72222                                                  VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear,
72223                                                  VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {},
72224                                                  uint32_t imageArrayLayers_ = {},
72225                                                  VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {},
72226                                                  VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
72227                                                  uint32_t queueFamilyIndexCount_ = {},
72228                                                  const uint32_t* pQueueFamilyIndices_ = {},
72229                                                  VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
72230                                                  VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque,
72231                                                  VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate,
72232                                                  VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {},
72233                                                  VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {} ) VULKAN_HPP_NOEXCEPT
72234       : flags( flags_ )
72235       , surface( surface_ )
72236       , minImageCount( minImageCount_ )
72237       , imageFormat( imageFormat_ )
72238       , imageColorSpace( imageColorSpace_ )
72239       , imageExtent( imageExtent_ )
72240       , imageArrayLayers( imageArrayLayers_ )
72241       , imageUsage( imageUsage_ )
72242       , imageSharingMode( imageSharingMode_ )
72243       , queueFamilyIndexCount( queueFamilyIndexCount_ )
72244       , pQueueFamilyIndices( pQueueFamilyIndices_ )
72245       , preTransform( preTransform_ )
72246       , compositeAlpha( compositeAlpha_ )
72247       , presentMode( presentMode_ )
72248       , clipped( clipped_ )
72249       , oldSwapchain( oldSwapchain_ )
72250     {}
72251 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72252     SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72253     {
72254       memcpy( &pNext, &rhs.pNext, sizeof( SwapchainCreateInfoKHR ) - offsetof( SwapchainCreateInfoKHR, pNext ) );
72255       return *this;
72256     }
72257 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72258     SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72259     {
72260       *this = rhs;
72261     }
72262 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72263     SwapchainCreateInfoKHR& operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72264     {
72265       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>(&rhs);
72266       return *this;
72267     }
72268 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72269     SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72270     {
72271       pNext = pNext_;
72272       return *this;
72273     }
72274 
setFlagsVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72275     SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
72276     {
72277       flags = flags_;
72278       return *this;
72279     }
72280 
setSurfaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72281     SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
72282     {
72283       surface = surface_;
72284       return *this;
72285     }
72286 
setMinImageCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72287     SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
72288     {
72289       minImageCount = minImageCount_;
72290       return *this;
72291     }
72292 
setImageFormatVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72293     SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
72294     {
72295       imageFormat = imageFormat_;
72296       return *this;
72297     }
72298 
setImageColorSpaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72299     SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
72300     {
72301       imageColorSpace = imageColorSpace_;
72302       return *this;
72303     }
72304 
setImageExtentVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72305     SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
72306     {
72307       imageExtent = imageExtent_;
72308       return *this;
72309     }
72310 
setImageArrayLayersVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72311     SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
72312     {
72313       imageArrayLayers = imageArrayLayers_;
72314       return *this;
72315     }
72316 
setImageUsageVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72317     SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
72318     {
72319       imageUsage = imageUsage_;
72320       return *this;
72321     }
72322 
setImageSharingModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72323     SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
72324     {
72325       imageSharingMode = imageSharingMode_;
72326       return *this;
72327     }
72328 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72329     SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
72330     {
72331       queueFamilyIndexCount = queueFamilyIndexCount_;
72332       return *this;
72333     }
72334 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72335     SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
72336     {
72337       pQueueFamilyIndices = pQueueFamilyIndices_;
72338       return *this;
72339     }
72340 
setPreTransformVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72341     SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
72342     {
72343       preTransform = preTransform_;
72344       return *this;
72345     }
72346 
setCompositeAlphaVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72347     SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
72348     {
72349       compositeAlpha = compositeAlpha_;
72350       return *this;
72351     }
72352 
setPresentModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72353     SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
72354     {
72355       presentMode = presentMode_;
72356       return *this;
72357     }
72358 
setClippedVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72359     SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
72360     {
72361       clipped = clipped_;
72362       return *this;
72363     }
72364 
setOldSwapchainVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72365     SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
72366     {
72367       oldSwapchain = oldSwapchain_;
72368       return *this;
72369     }
72370 
72371 
operator VkSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72372     operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
72373     {
72374       return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
72375     }
72376 
operator VkSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72377     operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
72378     {
72379       return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
72380     }
72381 
72382 
72383 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72384     auto operator<=>( SwapchainCreateInfoKHR const& ) const = default;
72385 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72386     bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
72387     {
72388       return ( sType == rhs.sType )
72389           && ( pNext == rhs.pNext )
72390           && ( flags == rhs.flags )
72391           && ( surface == rhs.surface )
72392           && ( minImageCount == rhs.minImageCount )
72393           && ( imageFormat == rhs.imageFormat )
72394           && ( imageColorSpace == rhs.imageColorSpace )
72395           && ( imageExtent == rhs.imageExtent )
72396           && ( imageArrayLayers == rhs.imageArrayLayers )
72397           && ( imageUsage == rhs.imageUsage )
72398           && ( imageSharingMode == rhs.imageSharingMode )
72399           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
72400           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
72401           && ( preTransform == rhs.preTransform )
72402           && ( compositeAlpha == rhs.compositeAlpha )
72403           && ( presentMode == rhs.presentMode )
72404           && ( clipped == rhs.clipped )
72405           && ( oldSwapchain == rhs.oldSwapchain );
72406     }
72407 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR72408     bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
72409     {
72410       return !operator==( rhs );
72411     }
72412 #endif
72413 
72414 
72415 
72416   public:
72417     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
72418     const void* pNext = {};
72419     VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
72420     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
72421     uint32_t minImageCount = {};
72422     VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
72423     VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
72424     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
72425     uint32_t imageArrayLayers = {};
72426     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
72427     VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
72428     uint32_t queueFamilyIndexCount = {};
72429     const uint32_t* pQueueFamilyIndices = {};
72430     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
72431     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
72432     VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
72433     VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
72434     VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
72435 
72436   };
72437   static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
72438   static_assert( std::is_standard_layout<SwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
72439 
72440   template <>
72441   struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
72442   {
72443     using Type = SwapchainCreateInfoKHR;
72444   };
72445 
72446   struct SwapchainDisplayNativeHdrCreateInfoAMD
72447   {
72448     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
72449 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72450     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {} ) VULKAN_HPP_NOEXCEPT
72451       : localDimmingEnable( localDimmingEnable_ )
72452     {}
72453 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72454     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72455     {
72456       memcpy( &pNext, &rhs.pNext, sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) - offsetof( SwapchainDisplayNativeHdrCreateInfoAMD, pNext ) );
72457       return *this;
72458     }
72459 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72460     SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72461     {
72462       *this = rhs;
72463     }
72464 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72465     SwapchainDisplayNativeHdrCreateInfoAMD& operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72466     {
72467       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>(&rhs);
72468       return *this;
72469     }
72470 
setPNextVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72471     SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72472     {
72473       pNext = pNext_;
72474       return *this;
72475     }
72476 
setLocalDimmingEnableVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72477     SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
72478     {
72479       localDimmingEnable = localDimmingEnable_;
72480       return *this;
72481     }
72482 
72483 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72484     operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
72485     {
72486       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
72487     }
72488 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72489     operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
72490     {
72491       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
72492     }
72493 
72494 
72495 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72496     auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const& ) const = default;
72497 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72498     bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
72499     {
72500       return ( sType == rhs.sType )
72501           && ( pNext == rhs.pNext )
72502           && ( localDimmingEnable == rhs.localDimmingEnable );
72503     }
72504 
operator !=VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD72505     bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
72506     {
72507       return !operator==( rhs );
72508     }
72509 #endif
72510 
72511 
72512 
72513   public:
72514     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
72515     const void* pNext = {};
72516     VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
72517 
72518   };
72519   static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" );
72520   static_assert( std::is_standard_layout<SwapchainDisplayNativeHdrCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
72521 
72522   template <>
72523   struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
72524   {
72525     using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
72526   };
72527 
72528   struct TextureLODGatherFormatPropertiesAMD
72529   {
72530     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
72531 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72532     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {} ) VULKAN_HPP_NOEXCEPT
72533       : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
72534     {}
72535 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72536     TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72537     {
72538       memcpy( &pNext, &rhs.pNext, sizeof( TextureLODGatherFormatPropertiesAMD ) - offsetof( TextureLODGatherFormatPropertiesAMD, pNext ) );
72539       return *this;
72540     }
72541 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72542     TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72543     {
72544       *this = rhs;
72545     }
72546 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72547     TextureLODGatherFormatPropertiesAMD& operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72548     {
72549       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>(&rhs);
72550       return *this;
72551     }
72552 
72553 
operator VkTextureLODGatherFormatPropertiesAMD const&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72554     operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
72555     {
72556       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
72557     }
72558 
operator VkTextureLODGatherFormatPropertiesAMD&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72559     operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
72560     {
72561       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
72562     }
72563 
72564 
72565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72566     auto operator<=>( TextureLODGatherFormatPropertiesAMD const& ) const = default;
72567 #else
operator ==VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72568     bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
72569     {
72570       return ( sType == rhs.sType )
72571           && ( pNext == rhs.pNext )
72572           && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
72573     }
72574 
operator !=VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD72575     bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
72576     {
72577       return !operator==( rhs );
72578     }
72579 #endif
72580 
72581 
72582 
72583   public:
72584     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
72585     void* pNext = {};
72586     VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
72587 
72588   };
72589   static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" );
72590   static_assert( std::is_standard_layout<TextureLODGatherFormatPropertiesAMD>::value, "struct wrapper is not a standard layout!" );
72591 
72592   template <>
72593   struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
72594   {
72595     using Type = TextureLODGatherFormatPropertiesAMD;
72596   };
72597 
72598   struct TimelineSemaphoreSubmitInfo
72599   {
72600     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
72601 
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72602     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( uint32_t waitSemaphoreValueCount_ = {},
72603                                                       const uint64_t* pWaitSemaphoreValues_ = {},
72604                                                       uint32_t signalSemaphoreValueCount_ = {},
72605                                                       const uint64_t* pSignalSemaphoreValues_ = {} ) VULKAN_HPP_NOEXCEPT
72606       : waitSemaphoreValueCount( waitSemaphoreValueCount_ )
72607       , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
72608       , signalSemaphoreValueCount( signalSemaphoreValueCount_ )
72609       , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
72610     {}
72611 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72612     TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
72613     {
72614       memcpy( &pNext, &rhs.pNext, sizeof( TimelineSemaphoreSubmitInfo ) - offsetof( TimelineSemaphoreSubmitInfo, pNext ) );
72615       return *this;
72616     }
72617 
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72618     TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
72619     {
72620       *this = rhs;
72621     }
72622 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72623     TimelineSemaphoreSubmitInfo& operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
72624     {
72625       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>(&rhs);
72626       return *this;
72627     }
72628 
setPNextVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72629     TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72630     {
72631       pNext = pNext_;
72632       return *this;
72633     }
72634 
setWaitSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72635     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
72636     {
72637       waitSemaphoreValueCount = waitSemaphoreValueCount_;
72638       return *this;
72639     }
72640 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72641     TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
72642     {
72643       pWaitSemaphoreValues = pWaitSemaphoreValues_;
72644       return *this;
72645     }
72646 
setSignalSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72647     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
72648     {
72649       signalSemaphoreValueCount = signalSemaphoreValueCount_;
72650       return *this;
72651     }
72652 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72653     TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
72654     {
72655       pSignalSemaphoreValues = pSignalSemaphoreValues_;
72656       return *this;
72657     }
72658 
72659 
operator VkTimelineSemaphoreSubmitInfo const&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72660     operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
72661     {
72662       return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>( this );
72663     }
72664 
operator VkTimelineSemaphoreSubmitInfo&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72665     operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
72666     {
72667       return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>( this );
72668     }
72669 
72670 
72671 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72672     auto operator<=>( TimelineSemaphoreSubmitInfo const& ) const = default;
72673 #else
operator ==VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72674     bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
72675     {
72676       return ( sType == rhs.sType )
72677           && ( pNext == rhs.pNext )
72678           && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount )
72679           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
72680           && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount )
72681           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
72682     }
72683 
operator !=VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo72684     bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
72685     {
72686       return !operator==( rhs );
72687     }
72688 #endif
72689 
72690 
72691 
72692   public:
72693     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
72694     const void* pNext = {};
72695     uint32_t waitSemaphoreValueCount = {};
72696     const uint64_t* pWaitSemaphoreValues = {};
72697     uint32_t signalSemaphoreValueCount = {};
72698     const uint64_t* pSignalSemaphoreValues = {};
72699 
72700   };
72701   static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" );
72702   static_assert( std::is_standard_layout<TimelineSemaphoreSubmitInfo>::value, "struct wrapper is not a standard layout!" );
72703 
72704   template <>
72705   struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
72706   {
72707     using Type = TimelineSemaphoreSubmitInfo;
72708   };
72709 
72710 #ifdef VK_ENABLE_BETA_EXTENSIONS
72711   struct TraceRaysIndirectCommandKHR
72712   {
72713 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72714     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( uint32_t width_ = {},
72715                                                       uint32_t height_ = {},
72716                                                       uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
72717       : width( width_ )
72718       , height( height_ )
72719       , depth( depth_ )
72720     {}
72721 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72722     explicit TraceRaysIndirectCommandKHR( Extent2D const& extent2D,
72723                                           uint32_t depth_ = {} )
72724       : width( extent2D.width )
72725       , height( extent2D.height )
72726       , depth( depth_ )
72727     {}
72728 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72729     TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72730     {
72731       *this = rhs;
72732     }
72733 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72734     TraceRaysIndirectCommandKHR& operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72735     {
72736       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>(&rhs);
72737       return *this;
72738     }
72739 
setWidthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72740     TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
72741     {
72742       width = width_;
72743       return *this;
72744     }
72745 
setHeightVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72746     TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
72747     {
72748       height = height_;
72749       return *this;
72750     }
72751 
setDepthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72752     TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
72753     {
72754       depth = depth_;
72755       return *this;
72756     }
72757 
72758 
operator VkTraceRaysIndirectCommandKHR const&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72759     operator VkTraceRaysIndirectCommandKHR const&() const VULKAN_HPP_NOEXCEPT
72760     {
72761       return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR*>( this );
72762     }
72763 
operator VkTraceRaysIndirectCommandKHR&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72764     operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
72765     {
72766       return *reinterpret_cast<VkTraceRaysIndirectCommandKHR*>( this );
72767     }
72768 
72769 
72770 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72771     auto operator<=>( TraceRaysIndirectCommandKHR const& ) const = default;
72772 #else
operator ==VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72773     bool operator==( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
72774     {
72775       return ( width == rhs.width )
72776           && ( height == rhs.height )
72777           && ( depth == rhs.depth );
72778     }
72779 
operator !=VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR72780     bool operator!=( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
72781     {
72782       return !operator==( rhs );
72783     }
72784 #endif
72785 
72786 
72787 
72788   public:
72789     uint32_t width = {};
72790     uint32_t height = {};
72791     uint32_t depth = {};
72792 
72793   };
72794   static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), "struct and wrapper have different size!" );
72795   static_assert( std::is_standard_layout<TraceRaysIndirectCommandKHR>::value, "struct wrapper is not a standard layout!" );
72796 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
72797 
72798   struct ValidationCacheCreateInfoEXT
72799   {
72800     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
72801 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72802     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {},
72803                                                        size_t initialDataSize_ = {},
72804                                                        const void* pInitialData_ = {} ) VULKAN_HPP_NOEXCEPT
72805       : flags( flags_ )
72806       , initialDataSize( initialDataSize_ )
72807       , pInitialData( pInitialData_ )
72808     {}
72809 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72810     ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72811     {
72812       memcpy( &pNext, &rhs.pNext, sizeof( ValidationCacheCreateInfoEXT ) - offsetof( ValidationCacheCreateInfoEXT, pNext ) );
72813       return *this;
72814     }
72815 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72816     ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72817     {
72818       *this = rhs;
72819     }
72820 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72821     ValidationCacheCreateInfoEXT& operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72822     {
72823       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>(&rhs);
72824       return *this;
72825     }
72826 
setPNextVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72827     ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72828     {
72829       pNext = pNext_;
72830       return *this;
72831     }
72832 
setFlagsVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72833     ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
72834     {
72835       flags = flags_;
72836       return *this;
72837     }
72838 
setInitialDataSizeVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72839     ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
72840     {
72841       initialDataSize = initialDataSize_;
72842       return *this;
72843     }
72844 
setPInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72845     ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
72846     {
72847       pInitialData = pInitialData_;
72848       return *this;
72849     }
72850 
72851 
operator VkValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72852     operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
72853     {
72854       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
72855     }
72856 
operator VkValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72857     operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
72858     {
72859       return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
72860     }
72861 
72862 
72863 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72864     auto operator<=>( ValidationCacheCreateInfoEXT const& ) const = default;
72865 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72866     bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72867     {
72868       return ( sType == rhs.sType )
72869           && ( pNext == rhs.pNext )
72870           && ( flags == rhs.flags )
72871           && ( initialDataSize == rhs.initialDataSize )
72872           && ( pInitialData == rhs.pInitialData );
72873     }
72874 
operator !=VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT72875     bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72876     {
72877       return !operator==( rhs );
72878     }
72879 #endif
72880 
72881 
72882 
72883   public:
72884     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
72885     const void* pNext = {};
72886     VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
72887     size_t initialDataSize = {};
72888     const void* pInitialData = {};
72889 
72890   };
72891   static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
72892   static_assert( std::is_standard_layout<ValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
72893 
72894   template <>
72895   struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
72896   {
72897     using Type = ValidationCacheCreateInfoEXT;
72898   };
72899 
72900   struct ValidationFeaturesEXT
72901   {
72902     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
72903 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72904     VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( uint32_t enabledValidationFeatureCount_ = {},
72905                                                 const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = {},
72906                                                 uint32_t disabledValidationFeatureCount_ = {},
72907                                                 const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
72908       : enabledValidationFeatureCount( enabledValidationFeatureCount_ )
72909       , pEnabledValidationFeatures( pEnabledValidationFeatures_ )
72910       , disabledValidationFeatureCount( disabledValidationFeatureCount_ )
72911       , pDisabledValidationFeatures( pDisabledValidationFeatures_ )
72912     {}
72913 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72914     ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72915     {
72916       memcpy( &pNext, &rhs.pNext, sizeof( ValidationFeaturesEXT ) - offsetof( ValidationFeaturesEXT, pNext ) );
72917       return *this;
72918     }
72919 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72920     ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72921     {
72922       *this = rhs;
72923     }
72924 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72925     ValidationFeaturesEXT& operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72926     {
72927       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>(&rhs);
72928       return *this;
72929     }
72930 
setPNextVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72931     ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72932     {
72933       pNext = pNext_;
72934       return *this;
72935     }
72936 
setEnabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72937     ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
72938     {
72939       enabledValidationFeatureCount = enabledValidationFeatureCount_;
72940       return *this;
72941     }
72942 
setPEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72943     ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
72944     {
72945       pEnabledValidationFeatures = pEnabledValidationFeatures_;
72946       return *this;
72947     }
72948 
setDisabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72949     ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
72950     {
72951       disabledValidationFeatureCount = disabledValidationFeatureCount_;
72952       return *this;
72953     }
72954 
setPDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72955     ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
72956     {
72957       pDisabledValidationFeatures = pDisabledValidationFeatures_;
72958       return *this;
72959     }
72960 
72961 
operator VkValidationFeaturesEXT const&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72962     operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
72963     {
72964       return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
72965     }
72966 
operator VkValidationFeaturesEXT&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72967     operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
72968     {
72969       return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
72970     }
72971 
72972 
72973 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72974     auto operator<=>( ValidationFeaturesEXT const& ) const = default;
72975 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72976     bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72977     {
72978       return ( sType == rhs.sType )
72979           && ( pNext == rhs.pNext )
72980           && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
72981           && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
72982           && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
72983           && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
72984     }
72985 
operator !=VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT72986     bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72987     {
72988       return !operator==( rhs );
72989     }
72990 #endif
72991 
72992 
72993 
72994   public:
72995     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
72996     const void* pNext = {};
72997     uint32_t enabledValidationFeatureCount = {};
72998     const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {};
72999     uint32_t disabledValidationFeatureCount = {};
73000     const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {};
73001 
73002   };
73003   static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" );
73004   static_assert( std::is_standard_layout<ValidationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
73005 
73006   template <>
73007   struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
73008   {
73009     using Type = ValidationFeaturesEXT;
73010   };
73011 
73012   struct ValidationFlagsEXT
73013   {
73014     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
73015 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT73016     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = {},
73017                                              const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {} ) VULKAN_HPP_NOEXCEPT
73018       : disabledValidationCheckCount( disabledValidationCheckCount_ )
73019       , pDisabledValidationChecks( pDisabledValidationChecks_ )
73020     {}
73021 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT73022     ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73023     {
73024       memcpy( &pNext, &rhs.pNext, sizeof( ValidationFlagsEXT ) - offsetof( ValidationFlagsEXT, pNext ) );
73025       return *this;
73026     }
73027 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT73028     ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73029     {
73030       *this = rhs;
73031     }
73032 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT73033     ValidationFlagsEXT& operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73034     {
73035       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>(&rhs);
73036       return *this;
73037     }
73038 
setPNextVULKAN_HPP_NAMESPACE::ValidationFlagsEXT73039     ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73040     {
73041       pNext = pNext_;
73042       return *this;
73043     }
73044 
setDisabledValidationCheckCountVULKAN_HPP_NAMESPACE::ValidationFlagsEXT73045     ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
73046     {
73047       disabledValidationCheckCount = disabledValidationCheckCount_;
73048       return *this;
73049     }
73050 
setPDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT73051     ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
73052     {
73053       pDisabledValidationChecks = pDisabledValidationChecks_;
73054       return *this;
73055     }
73056 
73057 
operator VkValidationFlagsEXT const&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT73058     operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT
73059     {
73060       return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
73061     }
73062 
operator VkValidationFlagsEXT&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT73063     operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
73064     {
73065       return *reinterpret_cast<VkValidationFlagsEXT*>( this );
73066     }
73067 
73068 
73069 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73070     auto operator<=>( ValidationFlagsEXT const& ) const = default;
73071 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFlagsEXT73072     bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73073     {
73074       return ( sType == rhs.sType )
73075           && ( pNext == rhs.pNext )
73076           && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
73077           && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
73078     }
73079 
operator !=VULKAN_HPP_NAMESPACE::ValidationFlagsEXT73080     bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73081     {
73082       return !operator==( rhs );
73083     }
73084 #endif
73085 
73086 
73087 
73088   public:
73089     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
73090     const void* pNext = {};
73091     uint32_t disabledValidationCheckCount = {};
73092     const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {};
73093 
73094   };
73095   static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" );
73096   static_assert( std::is_standard_layout<ValidationFlagsEXT>::value, "struct wrapper is not a standard layout!" );
73097 
73098   template <>
73099   struct CppType<StructureType, StructureType::eValidationFlagsEXT>
73100   {
73101     using Type = ValidationFlagsEXT;
73102   };
73103 
73104 #ifdef VK_USE_PLATFORM_VI_NN
73105   struct ViSurfaceCreateInfoNN
73106   {
73107     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
73108 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73109     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {},
73110                                                 void* window_ = {} ) VULKAN_HPP_NOEXCEPT
73111       : flags( flags_ )
73112       , window( window_ )
73113     {}
73114 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73115     ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
73116     {
73117       memcpy( &pNext, &rhs.pNext, sizeof( ViSurfaceCreateInfoNN ) - offsetof( ViSurfaceCreateInfoNN, pNext ) );
73118       return *this;
73119     }
73120 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73121     ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
73122     {
73123       *this = rhs;
73124     }
73125 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73126     ViSurfaceCreateInfoNN& operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
73127     {
73128       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>(&rhs);
73129       return *this;
73130     }
73131 
setPNextVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73132     ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73133     {
73134       pNext = pNext_;
73135       return *this;
73136     }
73137 
setFlagsVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73138     ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
73139     {
73140       flags = flags_;
73141       return *this;
73142     }
73143 
setWindowVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73144     ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT
73145     {
73146       window = window_;
73147       return *this;
73148     }
73149 
73150 
operator VkViSurfaceCreateInfoNN const&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73151     operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT
73152     {
73153       return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
73154     }
73155 
operator VkViSurfaceCreateInfoNN&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73156     operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
73157     {
73158       return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
73159     }
73160 
73161 
73162 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73163     auto operator<=>( ViSurfaceCreateInfoNN const& ) const = default;
73164 #else
operator ==VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73165     bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
73166     {
73167       return ( sType == rhs.sType )
73168           && ( pNext == rhs.pNext )
73169           && ( flags == rhs.flags )
73170           && ( window == rhs.window );
73171     }
73172 
operator !=VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN73173     bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
73174     {
73175       return !operator==( rhs );
73176     }
73177 #endif
73178 
73179 
73180 
73181   public:
73182     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
73183     const void* pNext = {};
73184     VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
73185     void* window = {};
73186 
73187   };
73188   static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" );
73189   static_assert( std::is_standard_layout<ViSurfaceCreateInfoNN>::value, "struct wrapper is not a standard layout!" );
73190 
73191   template <>
73192   struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
73193   {
73194     using Type = ViSurfaceCreateInfoNN;
73195   };
73196 #endif /*VK_USE_PLATFORM_VI_NN*/
73197 
73198 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
73199   struct WaylandSurfaceCreateInfoKHR
73200   {
73201     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
73202 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73203     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {},
73204                                                       struct wl_display* display_ = {},
73205                                                       struct wl_surface* surface_ = {} ) VULKAN_HPP_NOEXCEPT
73206       : flags( flags_ )
73207       , display( display_ )
73208       , surface( surface_ )
73209     {}
73210 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73211     WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73212     {
73213       memcpy( &pNext, &rhs.pNext, sizeof( WaylandSurfaceCreateInfoKHR ) - offsetof( WaylandSurfaceCreateInfoKHR, pNext ) );
73214       return *this;
73215     }
73216 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73217     WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73218     {
73219       *this = rhs;
73220     }
73221 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73222     WaylandSurfaceCreateInfoKHR& operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73223     {
73224       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>(&rhs);
73225       return *this;
73226     }
73227 
setPNextVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73228     WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73229     {
73230       pNext = pNext_;
73231       return *this;
73232     }
73233 
setFlagsVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73234     WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
73235     {
73236       flags = flags_;
73237       return *this;
73238     }
73239 
setDisplayVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73240     WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT
73241     {
73242       display = display_;
73243       return *this;
73244     }
73245 
setSurfaceVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73246     WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT
73247     {
73248       surface = surface_;
73249       return *this;
73250     }
73251 
73252 
operator VkWaylandSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73253     operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
73254     {
73255       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
73256     }
73257 
operator VkWaylandSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73258     operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
73259     {
73260       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
73261     }
73262 
73263 
73264 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73265     auto operator<=>( WaylandSurfaceCreateInfoKHR const& ) const = default;
73266 #else
operator ==VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73267     bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73268     {
73269       return ( sType == rhs.sType )
73270           && ( pNext == rhs.pNext )
73271           && ( flags == rhs.flags )
73272           && ( display == rhs.display )
73273           && ( surface == rhs.surface );
73274     }
73275 
operator !=VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR73276     bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73277     {
73278       return !operator==( rhs );
73279     }
73280 #endif
73281 
73282 
73283 
73284   public:
73285     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
73286     const void* pNext = {};
73287     VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
73288     struct wl_display* display = {};
73289     struct wl_surface* surface = {};
73290 
73291   };
73292   static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
73293   static_assert( std::is_standard_layout<WaylandSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
73294 
73295   template <>
73296   struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
73297   {
73298     using Type = WaylandSurfaceCreateInfoKHR;
73299   };
73300 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
73301 
73302 #ifdef VK_USE_PLATFORM_WIN32_KHR
73303   struct Win32KeyedMutexAcquireReleaseInfoKHR
73304   {
73305     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
73306 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73307     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = {},
73308                                                                const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {},
73309                                                                const uint64_t* pAcquireKeys_ = {},
73310                                                                const uint32_t* pAcquireTimeouts_ = {},
73311                                                                uint32_t releaseCount_ = {},
73312                                                                const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {},
73313                                                                const uint64_t* pReleaseKeys_ = {} ) VULKAN_HPP_NOEXCEPT
73314       : acquireCount( acquireCount_ )
73315       , pAcquireSyncs( pAcquireSyncs_ )
73316       , pAcquireKeys( pAcquireKeys_ )
73317       , pAcquireTimeouts( pAcquireTimeouts_ )
73318       , releaseCount( releaseCount_ )
73319       , pReleaseSyncs( pReleaseSyncs_ )
73320       , pReleaseKeys( pReleaseKeys_ )
73321     {}
73322 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73323     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73324     {
73325       memcpy( &pNext, &rhs.pNext, sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) - offsetof( Win32KeyedMutexAcquireReleaseInfoKHR, pNext ) );
73326       return *this;
73327     }
73328 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73329     Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73330     {
73331       *this = rhs;
73332     }
73333 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73334     Win32KeyedMutexAcquireReleaseInfoKHR& operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73335     {
73336       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>(&rhs);
73337       return *this;
73338     }
73339 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73340     Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73341     {
73342       pNext = pNext_;
73343       return *this;
73344     }
73345 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73346     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
73347     {
73348       acquireCount = acquireCount_;
73349       return *this;
73350     }
73351 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73352     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
73353     {
73354       pAcquireSyncs = pAcquireSyncs_;
73355       return *this;
73356     }
73357 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73358     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
73359     {
73360       pAcquireKeys = pAcquireKeys_;
73361       return *this;
73362     }
73363 
setPAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73364     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
73365     {
73366       pAcquireTimeouts = pAcquireTimeouts_;
73367       return *this;
73368     }
73369 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73370     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
73371     {
73372       releaseCount = releaseCount_;
73373       return *this;
73374     }
73375 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73376     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
73377     {
73378       pReleaseSyncs = pReleaseSyncs_;
73379       return *this;
73380     }
73381 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73382     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
73383     {
73384       pReleaseKeys = pReleaseKeys_;
73385       return *this;
73386     }
73387 
73388 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73389     operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT
73390     {
73391       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
73392     }
73393 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73394     operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
73395     {
73396       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
73397     }
73398 
73399 
73400 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73401     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const& ) const = default;
73402 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73403     bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73404     {
73405       return ( sType == rhs.sType )
73406           && ( pNext == rhs.pNext )
73407           && ( acquireCount == rhs.acquireCount )
73408           && ( pAcquireSyncs == rhs.pAcquireSyncs )
73409           && ( pAcquireKeys == rhs.pAcquireKeys )
73410           && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
73411           && ( releaseCount == rhs.releaseCount )
73412           && ( pReleaseSyncs == rhs.pReleaseSyncs )
73413           && ( pReleaseKeys == rhs.pReleaseKeys );
73414     }
73415 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR73416     bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73417     {
73418       return !operator==( rhs );
73419     }
73420 #endif
73421 
73422 
73423 
73424   public:
73425     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
73426     const void* pNext = {};
73427     uint32_t acquireCount = {};
73428     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
73429     const uint64_t* pAcquireKeys = {};
73430     const uint32_t* pAcquireTimeouts = {};
73431     uint32_t releaseCount = {};
73432     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
73433     const uint64_t* pReleaseKeys = {};
73434 
73435   };
73436   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" );
73437   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoKHR>::value, "struct wrapper is not a standard layout!" );
73438 
73439   template <>
73440   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
73441   {
73442     using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
73443   };
73444 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
73445 
73446 #ifdef VK_USE_PLATFORM_WIN32_KHR
73447   struct Win32KeyedMutexAcquireReleaseInfoNV
73448   {
73449     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
73450 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73451     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = {},
73452                                                               const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {},
73453                                                               const uint64_t* pAcquireKeys_ = {},
73454                                                               const uint32_t* pAcquireTimeoutMilliseconds_ = {},
73455                                                               uint32_t releaseCount_ = {},
73456                                                               const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {},
73457                                                               const uint64_t* pReleaseKeys_ = {} ) VULKAN_HPP_NOEXCEPT
73458       : acquireCount( acquireCount_ )
73459       , pAcquireSyncs( pAcquireSyncs_ )
73460       , pAcquireKeys( pAcquireKeys_ )
73461       , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ )
73462       , releaseCount( releaseCount_ )
73463       , pReleaseSyncs( pReleaseSyncs_ )
73464       , pReleaseKeys( pReleaseKeys_ )
73465     {}
73466 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73467     Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73468     {
73469       memcpy( &pNext, &rhs.pNext, sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) - offsetof( Win32KeyedMutexAcquireReleaseInfoNV, pNext ) );
73470       return *this;
73471     }
73472 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73473     Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73474     {
73475       *this = rhs;
73476     }
73477 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73478     Win32KeyedMutexAcquireReleaseInfoNV& operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73479     {
73480       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>(&rhs);
73481       return *this;
73482     }
73483 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73484     Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73485     {
73486       pNext = pNext_;
73487       return *this;
73488     }
73489 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73490     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
73491     {
73492       acquireCount = acquireCount_;
73493       return *this;
73494     }
73495 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73496     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
73497     {
73498       pAcquireSyncs = pAcquireSyncs_;
73499       return *this;
73500     }
73501 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73502     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
73503     {
73504       pAcquireKeys = pAcquireKeys_;
73505       return *this;
73506     }
73507 
setPAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73508     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
73509     {
73510       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
73511       return *this;
73512     }
73513 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73514     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
73515     {
73516       releaseCount = releaseCount_;
73517       return *this;
73518     }
73519 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73520     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
73521     {
73522       pReleaseSyncs = pReleaseSyncs_;
73523       return *this;
73524     }
73525 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73526     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
73527     {
73528       pReleaseKeys = pReleaseKeys_;
73529       return *this;
73530     }
73531 
73532 
operator VkWin32KeyedMutexAcquireReleaseInfoNV const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73533     operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT
73534     {
73535       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
73536     }
73537 
operator VkWin32KeyedMutexAcquireReleaseInfoNV&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73538     operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
73539     {
73540       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
73541     }
73542 
73543 
73544 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73545     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const& ) const = default;
73546 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73547     bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73548     {
73549       return ( sType == rhs.sType )
73550           && ( pNext == rhs.pNext )
73551           && ( acquireCount == rhs.acquireCount )
73552           && ( pAcquireSyncs == rhs.pAcquireSyncs )
73553           && ( pAcquireKeys == rhs.pAcquireKeys )
73554           && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
73555           && ( releaseCount == rhs.releaseCount )
73556           && ( pReleaseSyncs == rhs.pReleaseSyncs )
73557           && ( pReleaseKeys == rhs.pReleaseKeys );
73558     }
73559 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV73560     bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73561     {
73562       return !operator==( rhs );
73563     }
73564 #endif
73565 
73566 
73567 
73568   public:
73569     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
73570     const void* pNext = {};
73571     uint32_t acquireCount = {};
73572     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
73573     const uint64_t* pAcquireKeys = {};
73574     const uint32_t* pAcquireTimeoutMilliseconds = {};
73575     uint32_t releaseCount = {};
73576     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
73577     const uint64_t* pReleaseKeys = {};
73578 
73579   };
73580   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" );
73581   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoNV>::value, "struct wrapper is not a standard layout!" );
73582 
73583   template <>
73584   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
73585   {
73586     using Type = Win32KeyedMutexAcquireReleaseInfoNV;
73587   };
73588 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
73589 
73590 #ifdef VK_USE_PLATFORM_WIN32_KHR
73591   struct Win32SurfaceCreateInfoKHR
73592   {
73593     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
73594 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73595     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {},
73596                                                     HINSTANCE hinstance_ = {},
73597                                                     HWND hwnd_ = {} ) VULKAN_HPP_NOEXCEPT
73598       : flags( flags_ )
73599       , hinstance( hinstance_ )
73600       , hwnd( hwnd_ )
73601     {}
73602 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73603     Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73604     {
73605       memcpy( &pNext, &rhs.pNext, sizeof( Win32SurfaceCreateInfoKHR ) - offsetof( Win32SurfaceCreateInfoKHR, pNext ) );
73606       return *this;
73607     }
73608 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73609     Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73610     {
73611       *this = rhs;
73612     }
73613 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73614     Win32SurfaceCreateInfoKHR& operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73615     {
73616       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>(&rhs);
73617       return *this;
73618     }
73619 
setPNextVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73620     Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73621     {
73622       pNext = pNext_;
73623       return *this;
73624     }
73625 
setFlagsVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73626     Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
73627     {
73628       flags = flags_;
73629       return *this;
73630     }
73631 
setHinstanceVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73632     Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
73633     {
73634       hinstance = hinstance_;
73635       return *this;
73636     }
73637 
setHwndVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73638     Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
73639     {
73640       hwnd = hwnd_;
73641       return *this;
73642     }
73643 
73644 
operator VkWin32SurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73645     operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
73646     {
73647       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
73648     }
73649 
operator VkWin32SurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73650     operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
73651     {
73652       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
73653     }
73654 
73655 
73656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73657     auto operator<=>( Win32SurfaceCreateInfoKHR const& ) const = default;
73658 #else
operator ==VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73659     bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73660     {
73661       return ( sType == rhs.sType )
73662           && ( pNext == rhs.pNext )
73663           && ( flags == rhs.flags )
73664           && ( hinstance == rhs.hinstance )
73665           && ( hwnd == rhs.hwnd );
73666     }
73667 
operator !=VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR73668     bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73669     {
73670       return !operator==( rhs );
73671     }
73672 #endif
73673 
73674 
73675 
73676   public:
73677     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
73678     const void* pNext = {};
73679     VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
73680     HINSTANCE hinstance = {};
73681     HWND hwnd = {};
73682 
73683   };
73684   static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
73685   static_assert( std::is_standard_layout<Win32SurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
73686 
73687   template <>
73688   struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
73689   {
73690     using Type = Win32SurfaceCreateInfoKHR;
73691   };
73692 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
73693 
73694   struct WriteDescriptorSet
73695   {
73696     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
73697 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet73698     VULKAN_HPP_CONSTEXPR WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {},
73699                                              uint32_t dstBinding_ = {},
73700                                              uint32_t dstArrayElement_ = {},
73701                                              uint32_t descriptorCount_ = {},
73702                                              VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
73703                                              const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ = {},
73704                                              const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ = {},
73705                                              const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ = {} ) VULKAN_HPP_NOEXCEPT
73706       : dstSet( dstSet_ )
73707       , dstBinding( dstBinding_ )
73708       , dstArrayElement( dstArrayElement_ )
73709       , descriptorCount( descriptorCount_ )
73710       , descriptorType( descriptorType_ )
73711       , pImageInfo( pImageInfo_ )
73712       , pBufferInfo( pBufferInfo_ )
73713       , pTexelBufferView( pTexelBufferView_ )
73714     {}
73715 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet73716     WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
73717     {
73718       memcpy( &pNext, &rhs.pNext, sizeof( WriteDescriptorSet ) - offsetof( WriteDescriptorSet, pNext ) );
73719       return *this;
73720     }
73721 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet73722     WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
73723     {
73724       *this = rhs;
73725     }
73726 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet73727     WriteDescriptorSet& operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
73728     {
73729       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>(&rhs);
73730       return *this;
73731     }
73732 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSet73733     WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73734     {
73735       pNext = pNext_;
73736       return *this;
73737     }
73738 
setDstSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet73739     WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
73740     {
73741       dstSet = dstSet_;
73742       return *this;
73743     }
73744 
setDstBindingVULKAN_HPP_NAMESPACE::WriteDescriptorSet73745     WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
73746     {
73747       dstBinding = dstBinding_;
73748       return *this;
73749     }
73750 
setDstArrayElementVULKAN_HPP_NAMESPACE::WriteDescriptorSet73751     WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
73752     {
73753       dstArrayElement = dstArrayElement_;
73754       return *this;
73755     }
73756 
setDescriptorCountVULKAN_HPP_NAMESPACE::WriteDescriptorSet73757     WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
73758     {
73759       descriptorCount = descriptorCount_;
73760       return *this;
73761     }
73762 
setDescriptorTypeVULKAN_HPP_NAMESPACE::WriteDescriptorSet73763     WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
73764     {
73765       descriptorType = descriptorType_;
73766       return *this;
73767     }
73768 
setPImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet73769     WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT
73770     {
73771       pImageInfo = pImageInfo_;
73772       return *this;
73773     }
73774 
setPBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet73775     WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
73776     {
73777       pBufferInfo = pBufferInfo_;
73778       return *this;
73779     }
73780 
setPTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet73781     WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
73782     {
73783       pTexelBufferView = pTexelBufferView_;
73784       return *this;
73785     }
73786 
73787 
operator VkWriteDescriptorSet const&VULKAN_HPP_NAMESPACE::WriteDescriptorSet73788     operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
73789     {
73790       return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
73791     }
73792 
operator VkWriteDescriptorSet&VULKAN_HPP_NAMESPACE::WriteDescriptorSet73793     operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
73794     {
73795       return *reinterpret_cast<VkWriteDescriptorSet*>( this );
73796     }
73797 
73798 
73799 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73800     auto operator<=>( WriteDescriptorSet const& ) const = default;
73801 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSet73802     bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
73803     {
73804       return ( sType == rhs.sType )
73805           && ( pNext == rhs.pNext )
73806           && ( dstSet == rhs.dstSet )
73807           && ( dstBinding == rhs.dstBinding )
73808           && ( dstArrayElement == rhs.dstArrayElement )
73809           && ( descriptorCount == rhs.descriptorCount )
73810           && ( descriptorType == rhs.descriptorType )
73811           && ( pImageInfo == rhs.pImageInfo )
73812           && ( pBufferInfo == rhs.pBufferInfo )
73813           && ( pTexelBufferView == rhs.pTexelBufferView );
73814     }
73815 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSet73816     bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
73817     {
73818       return !operator==( rhs );
73819     }
73820 #endif
73821 
73822 
73823 
73824   public:
73825     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
73826     const void* pNext = {};
73827     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
73828     uint32_t dstBinding = {};
73829     uint32_t dstArrayElement = {};
73830     uint32_t descriptorCount = {};
73831     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
73832     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {};
73833     const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {};
73834     const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {};
73835 
73836   };
73837   static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" );
73838   static_assert( std::is_standard_layout<WriteDescriptorSet>::value, "struct wrapper is not a standard layout!" );
73839 
73840   template <>
73841   struct CppType<StructureType, StructureType::eWriteDescriptorSet>
73842   {
73843     using Type = WriteDescriptorSet;
73844   };
73845 
73846   struct WriteDescriptorSetAccelerationStructureKHR
73847   {
73848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
73849 
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73850     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( uint32_t accelerationStructureCount_ = {},
73851                                                                      const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ = {} ) VULKAN_HPP_NOEXCEPT
73852       : accelerationStructureCount( accelerationStructureCount_ )
73853       , pAccelerationStructures( pAccelerationStructures_ )
73854     {}
73855 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73856     WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73857     {
73858       memcpy( &pNext, &rhs.pNext, sizeof( WriteDescriptorSetAccelerationStructureKHR ) - offsetof( WriteDescriptorSetAccelerationStructureKHR, pNext ) );
73859       return *this;
73860     }
73861 
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73862     WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73863     {
73864       *this = rhs;
73865     }
73866 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73867     WriteDescriptorSetAccelerationStructureKHR& operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73868     {
73869       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>(&rhs);
73870       return *this;
73871     }
73872 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73873     WriteDescriptorSetAccelerationStructureKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73874     {
73875       pNext = pNext_;
73876       return *this;
73877     }
73878 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73879     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
73880     {
73881       accelerationStructureCount = accelerationStructureCount_;
73882       return *this;
73883     }
73884 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73885     WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
73886     {
73887       pAccelerationStructures = pAccelerationStructures_;
73888       return *this;
73889     }
73890 
73891 
operator VkWriteDescriptorSetAccelerationStructureKHR const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73892     operator VkWriteDescriptorSetAccelerationStructureKHR const&() const VULKAN_HPP_NOEXCEPT
73893     {
73894       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>( this );
73895     }
73896 
operator VkWriteDescriptorSetAccelerationStructureKHR&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73897     operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
73898     {
73899       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>( this );
73900     }
73901 
73902 
73903 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73904     auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const& ) const = default;
73905 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73906     bool operator==( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73907     {
73908       return ( sType == rhs.sType )
73909           && ( pNext == rhs.pNext )
73910           && ( accelerationStructureCount == rhs.accelerationStructureCount )
73911           && ( pAccelerationStructures == rhs.pAccelerationStructures );
73912     }
73913 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR73914     bool operator!=( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73915     {
73916       return !operator==( rhs );
73917     }
73918 #endif
73919 
73920 
73921 
73922   public:
73923     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
73924     const void* pNext = {};
73925     uint32_t accelerationStructureCount = {};
73926     const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures = {};
73927 
73928   };
73929   static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), "struct and wrapper have different size!" );
73930   static_assert( std::is_standard_layout<WriteDescriptorSetAccelerationStructureKHR>::value, "struct wrapper is not a standard layout!" );
73931 
73932   template <>
73933   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
73934   {
73935     using Type = WriteDescriptorSetAccelerationStructureKHR;
73936   };
73937 
73938   struct WriteDescriptorSetInlineUniformBlockEXT
73939   {
73940     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
73941 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73942     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( uint32_t dataSize_ = {},
73943                                                                   const void* pData_ = {} ) VULKAN_HPP_NOEXCEPT
73944       : dataSize( dataSize_ )
73945       , pData( pData_ )
73946     {}
73947 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73948     WriteDescriptorSetInlineUniformBlockEXT & operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73949     {
73950       memcpy( &pNext, &rhs.pNext, sizeof( WriteDescriptorSetInlineUniformBlockEXT ) - offsetof( WriteDescriptorSetInlineUniformBlockEXT, pNext ) );
73951       return *this;
73952     }
73953 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73954     WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73955     {
73956       *this = rhs;
73957     }
73958 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73959     WriteDescriptorSetInlineUniformBlockEXT& operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73960     {
73961       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT const *>(&rhs);
73962       return *this;
73963     }
73964 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73965     WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73966     {
73967       pNext = pNext_;
73968       return *this;
73969     }
73970 
setDataSizeVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73971     WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
73972     {
73973       dataSize = dataSize_;
73974       return *this;
73975     }
73976 
setPDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73977     WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
73978     {
73979       pData = pData_;
73980       return *this;
73981     }
73982 
73983 
operator VkWriteDescriptorSetInlineUniformBlockEXT const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73984     operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT
73985     {
73986       return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
73987     }
73988 
operator VkWriteDescriptorSetInlineUniformBlockEXT&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73989     operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT
73990     {
73991       return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
73992     }
73993 
73994 
73995 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73996     auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const& ) const = default;
73997 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT73998     bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73999     {
74000       return ( sType == rhs.sType )
74001           && ( pNext == rhs.pNext )
74002           && ( dataSize == rhs.dataSize )
74003           && ( pData == rhs.pData );
74004     }
74005 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT74006     bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74007     {
74008       return !operator==( rhs );
74009     }
74010 #endif
74011 
74012 
74013 
74014   public:
74015     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
74016     const void* pNext = {};
74017     uint32_t dataSize = {};
74018     const void* pData = {};
74019 
74020   };
74021   static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" );
74022   static_assert( std::is_standard_layout<WriteDescriptorSetInlineUniformBlockEXT>::value, "struct wrapper is not a standard layout!" );
74023 
74024   template <>
74025   struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlockEXT>
74026   {
74027     using Type = WriteDescriptorSetInlineUniformBlockEXT;
74028   };
74029 
74030 #ifdef VK_USE_PLATFORM_XCB_KHR
74031   struct XcbSurfaceCreateInfoKHR
74032   {
74033     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
74034 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74035     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {},
74036                                                   xcb_connection_t* connection_ = {},
74037                                                   xcb_window_t window_ = {} ) VULKAN_HPP_NOEXCEPT
74038       : flags( flags_ )
74039       , connection( connection_ )
74040       , window( window_ )
74041     {}
74042 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74043     XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74044     {
74045       memcpy( &pNext, &rhs.pNext, sizeof( XcbSurfaceCreateInfoKHR ) - offsetof( XcbSurfaceCreateInfoKHR, pNext ) );
74046       return *this;
74047     }
74048 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74049     XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74050     {
74051       *this = rhs;
74052     }
74053 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74054     XcbSurfaceCreateInfoKHR& operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74055     {
74056       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>(&rhs);
74057       return *this;
74058     }
74059 
setPNextVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74060     XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74061     {
74062       pNext = pNext_;
74063       return *this;
74064     }
74065 
setFlagsVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74066     XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
74067     {
74068       flags = flags_;
74069       return *this;
74070     }
74071 
setConnectionVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74072     XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT
74073     {
74074       connection = connection_;
74075       return *this;
74076     }
74077 
setWindowVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74078     XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
74079     {
74080       window = window_;
74081       return *this;
74082     }
74083 
74084 
operator VkXcbSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74085     operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
74086     {
74087       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
74088     }
74089 
operator VkXcbSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74090     operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
74091     {
74092       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
74093     }
74094 
74095 
74096 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74097     auto operator<=>( XcbSurfaceCreateInfoKHR const& ) const = default;
74098 #else
operator ==VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74099     bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74100     {
74101       return ( sType == rhs.sType )
74102           && ( pNext == rhs.pNext )
74103           && ( flags == rhs.flags )
74104           && ( connection == rhs.connection )
74105           && ( window == rhs.window );
74106     }
74107 
operator !=VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR74108     bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74109     {
74110       return !operator==( rhs );
74111     }
74112 #endif
74113 
74114 
74115 
74116   public:
74117     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
74118     const void* pNext = {};
74119     VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
74120     xcb_connection_t* connection = {};
74121     xcb_window_t window = {};
74122 
74123   };
74124   static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
74125   static_assert( std::is_standard_layout<XcbSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
74126 
74127   template <>
74128   struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
74129   {
74130     using Type = XcbSurfaceCreateInfoKHR;
74131   };
74132 #endif /*VK_USE_PLATFORM_XCB_KHR*/
74133 
74134 #ifdef VK_USE_PLATFORM_XLIB_KHR
74135   struct XlibSurfaceCreateInfoKHR
74136   {
74137     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
74138 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74139     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {},
74140                                                    Display* dpy_ = {},
74141                                                    Window window_ = {} ) VULKAN_HPP_NOEXCEPT
74142       : flags( flags_ )
74143       , dpy( dpy_ )
74144       , window( window_ )
74145     {}
74146 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74147     XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74148     {
74149       memcpy( &pNext, &rhs.pNext, sizeof( XlibSurfaceCreateInfoKHR ) - offsetof( XlibSurfaceCreateInfoKHR, pNext ) );
74150       return *this;
74151     }
74152 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74153     XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74154     {
74155       *this = rhs;
74156     }
74157 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74158     XlibSurfaceCreateInfoKHR& operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74159     {
74160       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>(&rhs);
74161       return *this;
74162     }
74163 
setPNextVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74164     XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74165     {
74166       pNext = pNext_;
74167       return *this;
74168     }
74169 
setFlagsVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74170     XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
74171     {
74172       flags = flags_;
74173       return *this;
74174     }
74175 
setDpyVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74176     XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT
74177     {
74178       dpy = dpy_;
74179       return *this;
74180     }
74181 
setWindowVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74182     XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
74183     {
74184       window = window_;
74185       return *this;
74186     }
74187 
74188 
operator VkXlibSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74189     operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
74190     {
74191       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
74192     }
74193 
operator VkXlibSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74194     operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
74195     {
74196       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
74197     }
74198 
74199 
74200 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74201     auto operator<=>( XlibSurfaceCreateInfoKHR const& ) const = default;
74202 #else
operator ==VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74203     bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74204     {
74205       return ( sType == rhs.sType )
74206           && ( pNext == rhs.pNext )
74207           && ( flags == rhs.flags )
74208           && ( dpy == rhs.dpy )
74209           && ( window == rhs.window );
74210     }
74211 
operator !=VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR74212     bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74213     {
74214       return !operator==( rhs );
74215     }
74216 #endif
74217 
74218 
74219 
74220   public:
74221     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
74222     const void* pNext = {};
74223     VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
74224     Display* dpy = {};
74225     Window window = {};
74226 
74227   };
74228   static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
74229   static_assert( std::is_standard_layout<XlibSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
74230 
74231   template <>
74232   struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
74233   {
74234     using Type = XlibSurfaceCreateInfoKHR;
74235   };
74236 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
74237 
74238   template<typename Dispatch>
createInstance(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Instance * pInstance,Dispatch const & d)74239   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
74240   {
74241     return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkInstance*>( pInstance ) ) );
74242   }
74243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74244   template<typename Dispatch>
createInstance(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)74245   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d )
74246   {
74247     VULKAN_HPP_NAMESPACE::Instance instance;
74248     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance*>( &instance ) ) );
74249     return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstance" );
74250   }
74251 #ifndef VULKAN_HPP_NO_SMART_HANDLE
74252   template<typename Dispatch>
createInstanceUnique(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)74253   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d )
74254   {
74255     VULKAN_HPP_NAMESPACE::Instance instance;
74256     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance*>( &instance ) ) );
74257 
74258     ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
74259     return createResultValue<Instance,Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstanceUnique", deleter );
74260   }
74261 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
74262 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74263 
74264   template<typename Dispatch>
enumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d)74265   VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d) VULKAN_HPP_NOEXCEPT
74266   {
74267     return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
74268   }
74269 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74270   template<typename Allocator, typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d)74271   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d )
74272   {
74273     std::vector<ExtensionProperties,Allocator> properties;
74274     uint32_t propertyCount;
74275     Result result;
74276     do
74277     {
74278       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
74279       if ( ( result == Result::eSuccess ) && propertyCount )
74280       {
74281         properties.resize( propertyCount );
74282         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
74283       }
74284     } while ( result == Result::eIncomplete );
74285     if ( result == Result::eSuccess )
74286     {
74287       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
74288       properties.resize( propertyCount );
74289     }
74290     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
74291   }
74292   template<typename Allocator, typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Allocator const & vectorAllocator,Dispatch const & d)74293   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d )
74294   {
74295     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
74296     uint32_t propertyCount;
74297     Result result;
74298     do
74299     {
74300       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
74301       if ( ( result == Result::eSuccess ) && propertyCount )
74302       {
74303         properties.resize( propertyCount );
74304         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
74305       }
74306     } while ( result == Result::eIncomplete );
74307     if ( result == Result::eSuccess )
74308     {
74309       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
74310       properties.resize( propertyCount );
74311     }
74312     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
74313   }
74314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74315 
74316   template<typename Dispatch>
enumerateInstanceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d)74317   VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) VULKAN_HPP_NOEXCEPT
74318   {
74319     return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
74320   }
74321 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74322   template<typename Allocator, typename Dispatch>
enumerateInstanceLayerProperties(Dispatch const & d)74323   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d )
74324   {
74325     std::vector<LayerProperties,Allocator> properties;
74326     uint32_t propertyCount;
74327     Result result;
74328     do
74329     {
74330       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
74331       if ( ( result == Result::eSuccess ) && propertyCount )
74332       {
74333         properties.resize( propertyCount );
74334         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
74335       }
74336     } while ( result == Result::eIncomplete );
74337     if ( result == Result::eSuccess )
74338     {
74339       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
74340       properties.resize( propertyCount );
74341     }
74342     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
74343   }
74344   template<typename Allocator, typename Dispatch>
enumerateInstanceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d)74345   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d )
74346   {
74347     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
74348     uint32_t propertyCount;
74349     Result result;
74350     do
74351     {
74352       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
74353       if ( ( result == Result::eSuccess ) && propertyCount )
74354       {
74355         properties.resize( propertyCount );
74356         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
74357       }
74358     } while ( result == Result::eIncomplete );
74359     if ( result == Result::eSuccess )
74360     {
74361       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
74362       properties.resize( propertyCount );
74363     }
74364     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
74365   }
74366 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74367 
74368   template<typename Dispatch>
enumerateInstanceVersion(uint32_t * pApiVersion,Dispatch const & d)74369   VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d) VULKAN_HPP_NOEXCEPT
74370   {
74371     return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
74372   }
74373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74374   template<typename Dispatch>
enumerateInstanceVersion(Dispatch const & d)74375   VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d )
74376   {
74377     uint32_t apiVersion;
74378     Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
74379     return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceVersion" );
74380   }
74381 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74382 
74383   template<typename Dispatch>
begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo,Dispatch const & d) const74384   VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74385   {
74386     return static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo*>( pBeginInfo ) ) );
74387   }
74388 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74389   template<typename Dispatch>
begin(const CommandBufferBeginInfo & beginInfo,Dispatch const & d) const74390   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d ) const
74391   {
74392     Result result = static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo*>( &beginInfo ) ) );
74393     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::begin" );
74394   }
74395 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74396 
74397   template<typename Dispatch>
beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,Dispatch const & d) const74398   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74399   {
74400     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( pConditionalRenderingBegin ) );
74401   }
74402 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74403   template<typename Dispatch>
beginConditionalRenderingEXT(const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,Dispatch const & d) const74404   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74405   {
74406     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( &conditionalRenderingBegin ) );
74407   }
74408 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74409 
74410   template<typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const74411   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74412   {
74413     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
74414   }
74415 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74416   template<typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const74417   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74418   {
74419     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
74420   }
74421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74422 
74423 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74424   template<typename Dispatch>
beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,Dispatch const & d) const74425   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
74426   {
74427     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
74428   }
74429 #else
74430   template<typename Dispatch>
beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,Dispatch const & d) const74431   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
74432   {
74433     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
74434   }
74435 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74436 
74437 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74438   template<typename Dispatch>
beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index,Dispatch const & d) const74439   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
74440   {
74441     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
74442   }
74443 #else
74444   template<typename Dispatch>
beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index,Dispatch const & d) const74445   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
74446   {
74447     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
74448   }
74449 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74450 
74451   template<typename Dispatch>
beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const74452   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74453   {
74454     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), static_cast<VkSubpassContents>( contents ) );
74455   }
74456 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74457   template<typename Dispatch>
beginRenderPass(const RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const74458   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74459   {
74460     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
74461   }
74462 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74463 
74464   template<typename Dispatch>
beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const74465   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
74466   {
74467     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo*>( pSubpassBeginInfo ) );
74468   }
74469 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74470   template<typename Dispatch>
beginRenderPass2(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const74471   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74472   {
74473     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo*>( &subpassBeginInfo ) );
74474   }
74475 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74476 
74477   template<typename Dispatch>
beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const74478   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
74479   {
74480     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo*>( pSubpassBeginInfo ) );
74481   }
74482 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74483   template<typename Dispatch>
beginRenderPass2KHR(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const74484   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74485   {
74486     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo*>( &subpassBeginInfo ) );
74487   }
74488 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74489 
74490   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) const74491   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
74492   {
74493     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer*>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize*>( pCounterBufferOffsets ) );
74494   }
74495 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74496   template<typename Dispatch>
beginTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> counterBuffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> counterBufferOffsets,Dispatch const & d) const74497   VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> counterBufferOffsets, Dispatch const &d ) const
74498   {
74499 #ifdef VULKAN_HPP_NO_EXCEPTIONS
74500     VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() );
74501 #else
74502     if ( counterBuffers.size() != counterBufferOffsets.size() )
74503     {
74504       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
74505     }
74506 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
74507     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast<const VkBuffer*>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize*>( counterBufferOffsets.data() ) );
74508   }
74509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74510 
74511   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) const74512   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
74513   {
74514     d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
74515   }
74516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74517   template<typename Dispatch>
bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets,ArrayProxy<const uint32_t> dynamicOffsets,Dispatch const & d) const74518   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> descriptorSets, ArrayProxy<const uint32_t> dynamicOffsets, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74519   {
74520     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() );
74521   }
74522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74523 
74524 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74525   template<typename Dispatch>
bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const74526   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
74527   {
74528     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
74529   }
74530 #else
74531   template<typename Dispatch>
bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const74532   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
74533   {
74534     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
74535   }
74536 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74537 
74538 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74539   template<typename Dispatch>
bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const74540   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74541   {
74542     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
74543   }
74544 #else
74545   template<typename Dispatch>
bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const74546   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74547   {
74548     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
74549   }
74550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74551 
74552 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74553   template<typename Dispatch>
bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex,Dispatch const & d) const74554   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
74555   {
74556     d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ), groupIndex );
74557   }
74558 #else
74559   template<typename Dispatch>
bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex,Dispatch const & d) const74560   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
74561   {
74562     d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ), groupIndex );
74563   }
74564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74565 
74566 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74567   template<typename Dispatch>
bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const74568   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74569   {
74570     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
74571   }
74572 #else
74573   template<typename Dispatch>
bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const74574   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74575   {
74576     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
74577   }
74578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74579 
74580   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) const74581   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
74582   {
74583     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer*>( pBuffers ), reinterpret_cast<const VkDeviceSize*>( pOffsets ), reinterpret_cast<const VkDeviceSize*>( pSizes ) );
74584   }
74585 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74586   template<typename Dispatch>
bindTransformFeedbackBuffersEXT(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> offsets,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> sizes,Dispatch const & d) const74587   VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> sizes, Dispatch const &d ) const
74588   {
74589 #ifdef VULKAN_HPP_NO_EXCEPTIONS
74590     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
74591 #else
74592     if ( buffers.size() != offsets.size() )
74593     {
74594       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
74595     }
74596 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
74597 #ifdef VULKAN_HPP_NO_EXCEPTIONS
74598     VULKAN_HPP_ASSERT( buffers.size() == sizes.size() );
74599 #else
74600     if ( buffers.size() != sizes.size() )
74601     {
74602       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
74603     }
74604 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
74605 #ifdef VULKAN_HPP_NO_EXCEPTIONS
74606     VULKAN_HPP_ASSERT( offsets.size() == sizes.size() );
74607 #else
74608     if ( offsets.size() != sizes.size() )
74609     {
74610       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: offsets.size() != sizes.size()" );
74611     }
74612 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
74613     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() ) );
74614   }
74615 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74616 
74617   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) const74618   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
74619   {
74620     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer*>( pBuffers ), reinterpret_cast<const VkDeviceSize*>( pOffsets ) );
74621   }
74622 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74623   template<typename Dispatch>
bindVertexBuffers(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> offsets,Dispatch const & d) const74624   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> offsets, Dispatch const &d ) const
74625   {
74626 #ifdef VULKAN_HPP_NO_EXCEPTIONS
74627     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
74628 #else
74629     if ( buffers.size() != offsets.size() )
74630     {
74631       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
74632     }
74633 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
74634     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size() , reinterpret_cast<const VkBuffer*>( buffers.data() ), reinterpret_cast<const VkDeviceSize*>( offsets.data() ) );
74635   }
74636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74637 
74638   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) const74639   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
74640   {
74641     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 ) );
74642   }
74643 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74644   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> regions,VULKAN_HPP_NAMESPACE::Filter filter,Dispatch const & d) const74645   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> regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74646   {
74647     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 ) );
74648   }
74649 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74650 
74651 #ifdef VK_ENABLE_BETA_EXTENSIONS
74652   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) const74653   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
74654   {
74655     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( pInfo ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
74656   }
74657 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74658   template<typename Dispatch>
buildAccelerationStructureIndirectKHR(const AccelerationStructureBuildGeometryInfoKHR & info,VULKAN_HPP_NAMESPACE::Buffer indirectBuffer,VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset,uint32_t indirectStride,Dispatch const & d) const74659   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
74660   {
74661     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( &info ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
74662   }
74663 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74664 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
74665 
74666 #ifdef VK_ENABLE_BETA_EXTENSIONS
74667   template<typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const74668   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
74669   {
74670     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR* const*>( ppOffsetInfos ) );
74671   }
74672 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74673   template<typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> pOffsetInfos,Dispatch const & d) const74674   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const> pOffsetInfos, Dispatch const &d ) const
74675   {
74676 #ifdef VULKAN_HPP_NO_EXCEPTIONS
74677     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
74678 #else
74679     if ( infos.size() != pOffsetInfos.size() )
74680     {
74681       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
74682     }
74683 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
74684     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infos.size() , reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR* const*>( pOffsetInfos.data() ) );
74685   }
74686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74687 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
74688 
74689   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) const74690   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
74691   {
74692     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 ) );
74693   }
74694 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74695   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) const74696   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
74697   {
74698     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 ) );
74699   }
74700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74701 
74702   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) const74703   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
74704   {
74705     d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast<const VkClearAttachment*>( pAttachments ), rectCount, reinterpret_cast<const VkClearRect*>( pRects ) );
74706   }
74707 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74708   template<typename Dispatch>
clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> attachments,ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> rects,Dispatch const & d) const74709   VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> attachments, ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> rects, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74710   {
74711     d.vkCmdClearAttachments( m_commandBuffer, attachments.size() , reinterpret_cast<const VkClearAttachment*>( attachments.data() ), rects.size() , reinterpret_cast<const VkClearRect*>( rects.data() ) );
74712   }
74713 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74714 
74715   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) const74716   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
74717   {
74718     d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue*>( pColor ), rangeCount, reinterpret_cast<const VkImageSubresourceRange*>( pRanges ) );
74719   }
74720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74721   template<typename Dispatch>
clearColorImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const ClearColorValue & color,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> ranges,Dispatch const & d) const74722   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> ranges, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74723   {
74724     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() ) );
74725   }
74726 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74727 
74728   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) const74729   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
74730   {
74731     d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue*>( pDepthStencil ), rangeCount, reinterpret_cast<const VkImageSubresourceRange*>( pRanges ) );
74732   }
74733 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74734   template<typename Dispatch>
clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const ClearDepthStencilValue & depthStencil,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> ranges,Dispatch const & d) const74735   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> ranges, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74736   {
74737     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() ) );
74738   }
74739 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74740 
74741 #ifdef VK_ENABLE_BETA_EXTENSIONS
74742   template<typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const74743   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74744   {
74745     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( pInfo ) );
74746   }
74747 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74748   template<typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const74749   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74750   {
74751     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( &info ) );
74752   }
74753 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74754 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
74755 
74756 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74757   template<typename Dispatch>
copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,Dispatch const & d) const74758   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
74759   {
74760     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkCopyAccelerationStructureModeKHR>( mode ) );
74761   }
74762 #else
74763   template<typename Dispatch>
copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,Dispatch const & d) const74764   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
74765   {
74766     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkCopyAccelerationStructureModeKHR>( mode ) );
74767   }
74768 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74769 
74770 #ifdef VK_ENABLE_BETA_EXTENSIONS
74771   template<typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const74772   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74773   {
74774     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( pInfo ) );
74775   }
74776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74777   template<typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const74778   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74779   {
74780     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( &info ) );
74781   }
74782 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74783 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
74784 
74785   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) const74786   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
74787   {
74788     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferCopy*>( pRegions ) );
74789   }
74790 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74791   template<typename Dispatch>
copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> regions,Dispatch const & d) const74792   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74793   {
74794     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regions.size() , reinterpret_cast<const VkBufferCopy*>( regions.data() ) );
74795   }
74796 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74797 
74798   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) const74799   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
74800   {
74801     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkBufferImageCopy*>( pRegions ) );
74802   }
74803 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74804   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> regions,Dispatch const & d) const74805   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> regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74806   {
74807     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size() , reinterpret_cast<const VkBufferImageCopy*>( regions.data() ) );
74808   }
74809 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74810 
74811   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) const74812   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
74813   {
74814     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 ) );
74815   }
74816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74817   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> regions,Dispatch const & d) const74818   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> regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74819   {
74820     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() ) );
74821   }
74822 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74823 
74824   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) const74825   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
74826   {
74827     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferImageCopy*>( pRegions ) );
74828   }
74829 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74830   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> regions,Dispatch const & d) const74831   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> regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74832   {
74833     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regions.size() , reinterpret_cast<const VkBufferImageCopy*>( regions.data() ) );
74834   }
74835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74836 
74837 #ifdef VK_ENABLE_BETA_EXTENSIONS
74838   template<typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const74839   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74840   {
74841     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( pInfo ) );
74842   }
74843 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74844   template<typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const74845   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74846   {
74847     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( &info ) );
74848   }
74849 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74850 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
74851 
74852 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74853   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) const74854   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
74855   {
74856     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 ) );
74857   }
74858 #else
74859   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) const74860   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
74861   {
74862     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 ) );
74863   }
74864 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74865 
74866   template<typename Dispatch>
debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const74867   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74868   {
74869     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( pMarkerInfo ) );
74870   }
74871 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74872   template<typename Dispatch>
debugMarkerBeginEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const74873   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74874   {
74875     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( &markerInfo ) );
74876   }
74877 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74878 
74879 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74880   template<typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const74881   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74882   {
74883     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
74884   }
74885 #else
74886   template<typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const74887   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74888   {
74889     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
74890   }
74891 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74892 
74893   template<typename Dispatch>
debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const74894   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74895   {
74896     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( pMarkerInfo ) );
74897   }
74898 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
74899   template<typename Dispatch>
debugMarkerInsertEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const74900   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74901   {
74902     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( &markerInfo ) );
74903   }
74904 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74905 
74906 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74907   template<typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const74908   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74909   {
74910     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
74911   }
74912 #else
74913   template<typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const74914   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74915   {
74916     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
74917   }
74918 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74919 
74920 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74921   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) const74922   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
74923   {
74924     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
74925   }
74926 #else
74927   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) const74928   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
74929   {
74930     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
74931   }
74932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74933 
74934 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74935   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) const74936   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
74937   {
74938     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
74939   }
74940 #else
74941   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) const74942   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
74943   {
74944     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
74945   }
74946 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74947 
74948 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74949   template<typename Dispatch>
dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const74950   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
74951   {
74952     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
74953   }
74954 #else
74955   template<typename Dispatch>
dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const74956   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
74957   {
74958     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
74959   }
74960 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74961 
74962 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74963   template<typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const74964   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
74965   {
74966     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
74967   }
74968 #else
74969   template<typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const74970   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
74971   {
74972     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
74973   }
74974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74975 
74976 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74977   template<typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const74978   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
74979   {
74980     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
74981   }
74982 #else
74983   template<typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const74984   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
74985   {
74986     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
74987   }
74988 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
74989 
74990 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
74991   template<typename Dispatch>
drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const74992   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
74993   {
74994     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
74995   }
74996 #else
74997   template<typename Dispatch>
drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const74998   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
74999   {
75000     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
75001   }
75002 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75003 
75004 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75005   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) const75006   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
75007   {
75008     d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75009   }
75010 #else
75011   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) const75012   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
75013   {
75014     d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75015   }
75016 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75017 
75018 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75019   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) const75020   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
75021   {
75022     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75023   }
75024 #else
75025   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) const75026   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
75027   {
75028     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75029   }
75030 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75031 
75032 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75033   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) const75034   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
75035   {
75036     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75037   }
75038 #else
75039   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) const75040   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
75041   {
75042     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75043   }
75044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75045 
75046 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75047   template<typename Dispatch>
drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const75048   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
75049   {
75050     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
75051   }
75052 #else
75053   template<typename Dispatch>
drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const75054   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
75055   {
75056     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
75057   }
75058 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75059 
75060 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75061   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) const75062   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
75063   {
75064     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
75065   }
75066 #else
75067   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) const75068   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
75069   {
75070     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
75071   }
75072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75073 
75074 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75075   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) const75076   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
75077   {
75078     d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75079   }
75080 #else
75081   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) const75082   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
75083   {
75084     d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75085   }
75086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75087 
75088 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75089   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) const75090   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
75091   {
75092     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75093   }
75094 #else
75095   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) const75096   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
75097   {
75098     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75099   }
75100 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75101 
75102 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75103   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) const75104   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
75105   {
75106     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75107   }
75108 #else
75109   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) const75110   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
75111   {
75112     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75113   }
75114 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75115 
75116 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75117   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) const75118   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
75119   {
75120     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75121   }
75122 #else
75123   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) const75124   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
75125   {
75126     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
75127   }
75128 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75129 
75130 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75131   template<typename Dispatch>
drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const75132   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
75133   {
75134     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
75135   }
75136 #else
75137   template<typename Dispatch>
drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const75138   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
75139   {
75140     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
75141   }
75142 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75143 
75144 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75145   template<typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const75146   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75147   {
75148     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
75149   }
75150 #else
75151   template<typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const75152   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75153   {
75154     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
75155   }
75156 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75157 
75158 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75159   template<typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const75160   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75161   {
75162     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
75163   }
75164 #else
75165   template<typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const75166   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75167   {
75168     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
75169   }
75170 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75171 
75172 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75173   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const75174   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75175   {
75176     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
75177   }
75178 #else
75179   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const75180   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75181   {
75182     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
75183   }
75184 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75185 
75186 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75187   template<typename Dispatch>
endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const75188   VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75189   {
75190     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
75191   }
75192 #else
75193   template<typename Dispatch>
endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const75194   VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75195   {
75196     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
75197   }
75198 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75199 
75200 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75201   template<typename Dispatch>
endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const75202   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75203   {
75204     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
75205   }
75206 #else
75207   template<typename Dispatch>
endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const75208   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75209   {
75210     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
75211   }
75212 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75213 
75214 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75215   template<typename Dispatch>
endRenderPass(Dispatch const & d) const75216   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75217   {
75218     d.vkCmdEndRenderPass( m_commandBuffer );
75219   }
75220 #else
75221   template<typename Dispatch>
endRenderPass(Dispatch const & d) const75222   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75223   {
75224     d.vkCmdEndRenderPass( m_commandBuffer );
75225   }
75226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75227 
75228   template<typename Dispatch>
endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const75229   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75230   {
75231     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo*>( pSubpassEndInfo ) );
75232   }
75233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75234   template<typename Dispatch>
endRenderPass2(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const75235   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75236   {
75237     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo*>( &subpassEndInfo ) );
75238   }
75239 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75240 
75241   template<typename Dispatch>
endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const75242   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75243   {
75244     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo*>( pSubpassEndInfo ) );
75245   }
75246 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75247   template<typename Dispatch>
endRenderPass2KHR(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const75248   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75249   {
75250     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo*>( &subpassEndInfo ) );
75251   }
75252 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75253 
75254   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) const75255   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
75256   {
75257     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer*>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize*>( pCounterBufferOffsets ) );
75258   }
75259 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75260   template<typename Dispatch>
endTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> counterBuffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> counterBufferOffsets,Dispatch const & d) const75261   VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> counterBufferOffsets, Dispatch const &d ) const
75262   {
75263 #ifdef VULKAN_HPP_NO_EXCEPTIONS
75264     VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() );
75265 #else
75266     if ( counterBuffers.size() != counterBufferOffsets.size() )
75267     {
75268       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
75269     }
75270 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
75271     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast<const VkBuffer*>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize*>( counterBufferOffsets.data() ) );
75272   }
75273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75274 
75275   template<typename Dispatch>
executeCommands(uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const75276   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75277   {
75278     d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
75279   }
75280 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75281   template<typename Dispatch>
executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers,Dispatch const & d) const75282   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75283   {
75284     d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
75285   }
75286 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75287 
75288   template<typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const75289   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75290   {
75291     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV*>( pGeneratedCommandsInfo ) );
75292   }
75293 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75294   template<typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const75295   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75296   {
75297     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV*>( &generatedCommandsInfo ) );
75298   }
75299 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75300 
75301 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75302   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) const75303   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
75304   {
75305     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
75306   }
75307 #else
75308   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) const75309   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
75310   {
75311     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
75312   }
75313 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75314 
75315   template<typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const75316   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75317   {
75318     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
75319   }
75320 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75321   template<typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const75322   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75323   {
75324     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
75325   }
75326 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75327 
75328 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75329   template<typename Dispatch>
nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const75330   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75331   {
75332     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
75333   }
75334 #else
75335   template<typename Dispatch>
nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const75336   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75337   {
75338     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
75339   }
75340 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75341 
75342   template<typename Dispatch>
nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const75343   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
75344   {
75345     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo*>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo*>( pSubpassEndInfo ) );
75346   }
75347 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75348   template<typename Dispatch>
nextSubpass2(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const75349   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75350   {
75351     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo*>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo*>( &subpassEndInfo ) );
75352   }
75353 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75354 
75355   template<typename Dispatch>
nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const75356   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
75357   {
75358     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo*>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo*>( pSubpassEndInfo ) );
75359   }
75360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75361   template<typename Dispatch>
nextSubpass2KHR(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const75362   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75363   {
75364     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo*>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo*>( &subpassEndInfo ) );
75365   }
75366 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75367 
75368   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) const75369   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
75370   {
75371     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 ) );
75372   }
75373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75374   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> memoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> bufferMemoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> imageMemoryBarriers,Dispatch const & d) const75375   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> memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75376   {
75377     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() ) );
75378   }
75379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75380 
75381   template<typename Dispatch>
preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const75382   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75383   {
75384     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV*>( pGeneratedCommandsInfo ) );
75385   }
75386 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75387   template<typename Dispatch>
preprocessGeneratedCommandsNV(const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const75388   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75389   {
75390     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV*>( &generatedCommandsInfo ) );
75391   }
75392 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75393 
75394   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) const75395   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
75396   {
75397     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, size, pValues );
75398   }
75399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75400   template<typename T, typename Dispatch>
pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,uint32_t offset,ArrayProxy<const T> values,Dispatch const & d) const75401   VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> values, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75402   {
75403     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, values.size() * sizeof( T ) , reinterpret_cast<const void*>( values.data() ) );
75404   }
75405 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75406 
75407   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) const75408   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
75409   {
75410     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet*>( pDescriptorWrites ) );
75411   }
75412 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75413   template<typename Dispatch>
pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> descriptorWrites,Dispatch const & d) const75414   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> descriptorWrites, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75415   {
75416     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWrites.size() , reinterpret_cast<const VkWriteDescriptorSet*>( descriptorWrites.data() ) );
75417   }
75418 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75419 
75420 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75421   template<typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const75422   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
75423   {
75424     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
75425   }
75426 #else
75427   template<typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const75428   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
75429   {
75430     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
75431   }
75432 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75433 
75434 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75435   template<typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const75436   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75437   {
75438     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
75439   }
75440 #else
75441   template<typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const75442   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75443   {
75444     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
75445   }
75446 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75447 
75448 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75449   template<typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const75450   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75451   {
75452     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
75453   }
75454 #else
75455   template<typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const75456   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75457   {
75458     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
75459   }
75460 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75461 
75462   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) const75463   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
75464   {
75465     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 ) );
75466   }
75467 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75468   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> regions,Dispatch const & d) const75469   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> regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75470   {
75471     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() ) );
75472   }
75473 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75474 
75475 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75476   template<typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const75477   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75478   {
75479     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
75480   }
75481 #else
75482   template<typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const75483   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75484   {
75485     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
75486   }
75487 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75488 
75489 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75490   template<typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const75491   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75492   {
75493     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
75494   }
75495 #else
75496   template<typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const75497   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75498   {
75499     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
75500   }
75501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75502 
75503   template<typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,Dispatch const & d) const75504   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
75505   {
75506     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( pCustomSampleOrders ) );
75507   }
75508 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75509   template<typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> customSampleOrders,Dispatch const & d) const75510   VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75511   {
75512     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size() , reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( customSampleOrders.data() ) );
75513   }
75514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75515 
75516 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75517   template<typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const75518   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75519   {
75520     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
75521   }
75522 #else
75523   template<typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const75524   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75525   {
75526     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
75527   }
75528 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75529 
75530 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75531   template<typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const75532   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75533   {
75534     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
75535   }
75536 #else
75537   template<typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const75538   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75539   {
75540     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
75541   }
75542 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75543 
75544 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75545   template<typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const75546   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75547   {
75548     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
75549   }
75550 #else
75551   template<typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const75552   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75553   {
75554     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
75555   }
75556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75557 
75558 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75559   template<typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const75560   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75561   {
75562     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
75563   }
75564 #else
75565   template<typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const75566   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75567   {
75568     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
75569   }
75570 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75571 
75572   template<typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,Dispatch const & d) const75573   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
75574   {
75575     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D*>( pDiscardRectangles ) );
75576   }
75577 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75578   template<typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> discardRectangles,Dispatch const & d) const75579   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> discardRectangles, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75580   {
75581     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size() , reinterpret_cast<const VkRect2D*>( discardRectangles.data() ) );
75582   }
75583 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75584 
75585 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75586   template<typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const75587   VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75588   {
75589     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
75590   }
75591 #else
75592   template<typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const75593   VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75594   {
75595     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
75596   }
75597 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75598 
75599   template<typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,Dispatch const & d) const75600   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
75601   {
75602     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D*>( pExclusiveScissors ) );
75603   }
75604 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75605   template<typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> exclusiveScissors,Dispatch const & d) const75606   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> exclusiveScissors, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75607   {
75608     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size() , reinterpret_cast<const VkRect2D*>( exclusiveScissors.data() ) );
75609   }
75610 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75611 
75612 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75613   template<typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const75614   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75615   {
75616     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
75617   }
75618 #else
75619   template<typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const75620   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75621   {
75622     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
75623   }
75624 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75625 
75626 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75627   template<typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const75628   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75629   {
75630     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
75631   }
75632 #else
75633   template<typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const75634   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75635   {
75636     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
75637   }
75638 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75639 
75640   template<typename Dispatch>
setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const75641   VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75642   {
75643     return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( pMarkerInfo ) ) );
75644   }
75645 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75646   template<typename Dispatch>
setPerformanceMarkerINTEL(const PerformanceMarkerInfoINTEL & markerInfo,Dispatch const & d) const75647   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d ) const
75648   {
75649     Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( &markerInfo ) ) );
75650     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceMarkerINTEL" );
75651   }
75652 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75653 
75654   template<typename Dispatch>
setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo,Dispatch const & d) const75655   VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75656   {
75657     return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( pOverrideInfo ) ) );
75658   }
75659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75660   template<typename Dispatch>
setPerformanceOverrideINTEL(const PerformanceOverrideInfoINTEL & overrideInfo,Dispatch const & d) const75661   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d ) const
75662   {
75663     Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( &overrideInfo ) ) );
75664     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceOverrideINTEL" );
75665   }
75666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75667 
75668   template<typename Dispatch>
setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const75669   VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75670   {
75671     return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( pMarkerInfo ) ) );
75672   }
75673 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75674   template<typename Dispatch>
setPerformanceStreamMarkerINTEL(const PerformanceStreamMarkerInfoINTEL & markerInfo,Dispatch const & d) const75675   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d ) const
75676   {
75677     Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( &markerInfo ) ) );
75678     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceStreamMarkerINTEL" );
75679   }
75680 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75681 
75682   template<typename Dispatch>
setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,Dispatch const & d) const75683   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75684   {
75685     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT*>( pSampleLocationsInfo ) );
75686   }
75687 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75688   template<typename Dispatch>
setSampleLocationsEXT(const SampleLocationsInfoEXT & sampleLocationsInfo,Dispatch const & d) const75689   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75690   {
75691     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT*>( &sampleLocationsInfo ) );
75692   }
75693 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75694 
75695   template<typename Dispatch>
setScissor(uint32_t firstScissor,uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const75696   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
75697   {
75698     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D*>( pScissors ) );
75699   }
75700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75701   template<typename Dispatch>
setScissor(uint32_t firstScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> scissors,Dispatch const & d) const75702   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> scissors, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75703   {
75704     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size() , reinterpret_cast<const VkRect2D*>( scissors.data() ) );
75705   }
75706 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75707 
75708 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75709   template<typename Dispatch>
setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const75710   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75711   {
75712     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
75713   }
75714 #else
75715   template<typename Dispatch>
setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const75716   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75717   {
75718     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
75719   }
75720 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75721 
75722 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75723   template<typename Dispatch>
setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const75724   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75725   {
75726     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
75727   }
75728 #else
75729   template<typename Dispatch>
setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const75730   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75731   {
75732     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
75733   }
75734 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75735 
75736 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75737   template<typename Dispatch>
setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const75738   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75739   {
75740     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
75741   }
75742 #else
75743   template<typename Dispatch>
setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const75744   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75745   {
75746     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
75747   }
75748 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75749 
75750   template<typename Dispatch>
setViewport(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const75751   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
75752   {
75753     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport*>( pViewports ) );
75754   }
75755 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75756   template<typename Dispatch>
setViewport(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> viewports,Dispatch const & d) const75757   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> viewports, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75758   {
75759     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size() , reinterpret_cast<const VkViewport*>( viewports.data() ) );
75760   }
75761 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75762 
75763   template<typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,Dispatch const & d) const75764   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
75765   {
75766     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV*>( pShadingRatePalettes ) );
75767   }
75768 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75769   template<typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> shadingRatePalettes,Dispatch const & d) const75770   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75771   {
75772     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size() , reinterpret_cast<const VkShadingRatePaletteNV*>( shadingRatePalettes.data() ) );
75773   }
75774 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75775 
75776   template<typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,Dispatch const & d) const75777   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
75778   {
75779     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV*>( pViewportWScalings ) );
75780   }
75781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75782   template<typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> viewportWScalings,Dispatch const & d) const75783   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> viewportWScalings, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75784   {
75785     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size() , reinterpret_cast<const VkViewportWScalingNV*>( viewportWScalings.data() ) );
75786   }
75787 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75788 
75789 #ifdef VK_ENABLE_BETA_EXTENSIONS
75790   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) const75791   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
75792   {
75793     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 ) );
75794   }
75795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75796   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) const75797   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
75798   {
75799     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 ) );
75800   }
75801 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75802 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
75803 
75804 #ifdef VK_ENABLE_BETA_EXTENSIONS
75805   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) const75806   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
75807   {
75808     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 );
75809   }
75810 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75811   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) const75812   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
75813   {
75814     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 );
75815   }
75816 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75817 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
75818 
75819 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75820   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) const75821   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
75822   {
75823     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 );
75824   }
75825 #else
75826   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) const75827   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
75828   {
75829     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 );
75830   }
75831 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75832 
75833   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) const75834   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
75835   {
75836     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( dataSize ), pData );
75837   }
75838 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75839   template<typename T, typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,ArrayProxy<const T> data,Dispatch const & d) const75840   VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy<const T> data, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75841   {
75842     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), data.size() * sizeof( T ) , reinterpret_cast<const void*>( data.data() ) );
75843   }
75844 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75845 
75846   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) const75847   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
75848   {
75849     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 ) );
75850   }
75851 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75852   template<typename Dispatch>
waitEvents(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> events,VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> memoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> bufferMemoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> imageMemoryBarriers,Dispatch const & d) const75853   VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75854   {
75855     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() ) );
75856   }
75857 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75858 
75859   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) const75860   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
75861   {
75862     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR*>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
75863   }
75864 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75865   template<typename Dispatch>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const75866   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75867   {
75868     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructures.size() , reinterpret_cast<const VkAccelerationStructureKHR*>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
75869   }
75870 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75871 
75872   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) const75873   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
75874   {
75875     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR*>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
75876   }
75877 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75878   template<typename Dispatch>
writeAccelerationStructuresPropertiesNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const75879   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
75880   {
75881     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size() , reinterpret_cast<const VkAccelerationStructureKHR*>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
75882   }
75883 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75884 
75885 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75886   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) const75887   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
75888   {
75889     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
75890   }
75891 #else
75892   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) const75893   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
75894   {
75895     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
75896   }
75897 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75898 
75899 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75900   template<typename Dispatch>
writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const75901   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
75902   {
75903     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
75904   }
75905 #else
75906   template<typename Dispatch>
writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const75907   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
75908   {
75909     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
75910   }
75911 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75912 
75913 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75914   template<typename Dispatch>
end(Dispatch const & d) const75915   VULKAN_HPP_INLINE Result CommandBuffer::end(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75916   {
75917     return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
75918   }
75919 #else
75920   template<typename Dispatch>
end(Dispatch const & d) const75921   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::end(Dispatch const &d ) const
75922   {
75923     Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
75924     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::end" );
75925   }
75926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75927 
75928 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75929   template<typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const75930   VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75931   {
75932     return static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
75933   }
75934 #else
75935   template<typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const75936   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d ) const
75937   {
75938     Result result = static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
75939     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::reset" );
75940   }
75941 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75942 
75943 #ifdef VK_USE_PLATFORM_WIN32_KHR
75944 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
75945   template<typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const75946   VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75947   {
75948     return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
75949   }
75950 #else
75951   template<typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const75952   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
75953   {
75954     Result result = static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
75955     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireFullScreenExclusiveModeEXT" );
75956   }
75957 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75958 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
75959 
75960   template<typename Dispatch>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,Dispatch const & d) const75961   VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75962   {
75963     return static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( pAcquireInfo ), pImageIndex ) );
75964   }
75965 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75966   template<typename Dispatch>
acquireNextImage2KHR(const AcquireNextImageInfoKHR & acquireInfo,Dispatch const & d) const75967   VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d ) const
75968   {
75969     uint32_t imageIndex;
75970     Result result = static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( &acquireInfo ), &imageIndex ) );
75971     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImage2KHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
75972   }
75973 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75974 
75975   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) const75976   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
75977   {
75978     return static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), pImageIndex ) );
75979   }
75980 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75981   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) const75982   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
75983   {
75984     uint32_t imageIndex;
75985     Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
75986     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImageKHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
75987   }
75988 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
75989 
75990   template<typename Dispatch>
acquirePerformanceConfigurationINTEL(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration,Dispatch const & d) const75991   VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
75992   {
75993     return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( pAcquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( pConfiguration ) ) );
75994   }
75995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
75996   template<typename Dispatch>
acquirePerformanceConfigurationINTEL(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const75997   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>::type Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d ) const
75998   {
75999     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
76000     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( &configuration ) ) );
76001     return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING"::Device::acquirePerformanceConfigurationINTEL" );
76002   }
76003 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76004 
76005   template<typename Dispatch>
acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo,Dispatch const & d) const76006   VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76007   {
76008     return static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( pInfo ) ) );
76009   }
76010 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76011   template<typename Dispatch>
acquireProfilingLockKHR(const AcquireProfilingLockInfoKHR & info,Dispatch const & d) const76012   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const &d ) const
76013   {
76014     Result result = static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( &info ) ) );
76015     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireProfilingLockKHR" );
76016   }
76017 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76018 
76019   template<typename Dispatch>
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const76020   VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76021   {
76022     return static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkCommandBuffer*>( pCommandBuffers ) ) );
76023   }
76024 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76025   template<typename Allocator, typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const76026   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
76027   {
76028     std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount );
76029     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
76030     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
76031   }
76032   template<typename Allocator, typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const76033   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
76034   {
76035     std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount, vectorAllocator );
76036     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
76037     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
76038   }
76039 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76040   template<typename Allocator, typename Dispatch>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const76041   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
76042   {
76043     std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> uniqueCommandBuffers;
76044     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
76045     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>(commandBuffers.data()) ) );
76046     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
76047     {
76048       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
76049       PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
76050       for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
76051       {
76052         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
76053       }
76054     }
76055 
76056     return createResultValue( result, uniqueCommandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
76057   }
76058   template<typename Allocator, typename Dispatch>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const76059   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
76060   {
76061     std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> uniqueCommandBuffers( vectorAllocator );
76062     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
76063     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>(commandBuffers.data()) ) );
76064     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
76065     {
76066       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
76067       PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
76068       for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
76069       {
76070         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
76071       }
76072     }
76073 
76074     return createResultValue( result, uniqueCommandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
76075   }
76076 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76078 
76079   template<typename Dispatch>
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const76080   VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76081   {
76082     return static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkDescriptorSet*>( pDescriptorSets ) ) );
76083   }
76084 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76085   template<typename Allocator, typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const76086   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
76087   {
76088     std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount );
76089     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
76090     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
76091   }
76092   template<typename Allocator, typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const76093   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
76094   {
76095     std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount, vectorAllocator );
76096     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
76097     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
76098   }
76099 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76100   template<typename Allocator, typename Dispatch>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const76101   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
76102   {
76103     std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> uniqueDescriptorSets;
76104     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
76105     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>(descriptorSets.data()) ) );
76106     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
76107     {
76108       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
76109       PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
76110       for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
76111       {
76112         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
76113       }
76114     }
76115 
76116     return createResultValue( result, uniqueDescriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
76117   }
76118   template<typename Allocator, typename Dispatch>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const76119   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
76120   {
76121     std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> uniqueDescriptorSets( vectorAllocator );
76122     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
76123     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>(descriptorSets.data()) ) );
76124     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
76125     {
76126       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
76127       PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
76128       for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
76129       {
76130         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
76131       }
76132     }
76133 
76134     return createResultValue( result, uniqueDescriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
76135   }
76136 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76137 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76138 
76139   template<typename Dispatch>
allocateMemory(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory,Dispatch const & d) const76140   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
76141   {
76142     return static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( pAllocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDeviceMemory*>( pMemory ) ) );
76143   }
76144 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76145   template<typename Dispatch>
allocateMemory(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76146   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceMemory>::type Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76147   {
76148     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
76149     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory*>( &memory ) ) );
76150     return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemory" );
76151   }
76152 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76153   template<typename Dispatch>
allocateMemoryUnique(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76154   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76155   {
76156     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
76157     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory*>( &memory ) ) );
76158 
76159     ObjectFree<Device,Dispatch> deleter( *this, allocator, d );
76160     return createResultValue<DeviceMemory,Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemoryUnique", deleter );
76161   }
76162 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76163 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76164 
76165   template<typename Dispatch>
bindAccelerationStructureMemoryKHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const76166   VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryKHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76167   {
76168     return static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( pBindInfos ) ) );
76169   }
76170 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76171   template<typename Dispatch>
bindAccelerationStructureMemoryKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> bindInfos,Dispatch const & d) const76172   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> bindInfos, Dispatch const &d ) const
76173   {
76174     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfos.size() , reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( bindInfos.data() ) ) );
76175     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindAccelerationStructureMemoryKHR" );
76176   }
76177 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76178 
76179   template<typename Dispatch>
bindAccelerationStructureMemoryNV(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const76180   VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76181   {
76182     return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( pBindInfos ) ) );
76183   }
76184 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76185   template<typename Dispatch>
bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> bindInfos,Dispatch const & d) const76186   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> bindInfos, Dispatch const &d ) const
76187   {
76188     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size() , reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( bindInfos.data() ) ) );
76189     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindAccelerationStructureMemoryNV" );
76190   }
76191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76192 
76193 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
76194   template<typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const76195   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
76196   {
76197     return static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
76198   }
76199 #else
76200   template<typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const76201   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
76202   {
76203     Result result = static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
76204     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory" );
76205   }
76206 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76207 
76208   template<typename Dispatch>
bindBufferMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const76209   VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76210   {
76211     return static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo*>( pBindInfos ) ) );
76212   }
76213 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76214   template<typename Dispatch>
bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> bindInfos,Dispatch const & d) const76215   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindBufferMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> bindInfos, Dispatch const &d ) const
76216   {
76217     Result result = static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfos.size() , reinterpret_cast<const VkBindBufferMemoryInfo*>( bindInfos.data() ) ) );
76218     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2" );
76219   }
76220 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76221 
76222   template<typename Dispatch>
bindBufferMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const76223   VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76224   {
76225     return static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo*>( pBindInfos ) ) );
76226   }
76227 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76228   template<typename Dispatch>
bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> bindInfos,Dispatch const & d) const76229   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindBufferMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> bindInfos, Dispatch const &d ) const
76230   {
76231     Result result = static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfos.size() , reinterpret_cast<const VkBindBufferMemoryInfo*>( bindInfos.data() ) ) );
76232     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2KHR" );
76233   }
76234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76235 
76236 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
76237   template<typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const76238   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
76239   {
76240     return static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
76241   }
76242 #else
76243   template<typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const76244   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
76245   {
76246     Result result = static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
76247     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory" );
76248   }
76249 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76250 
76251   template<typename Dispatch>
bindImageMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const76252   VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76253   {
76254     return static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo*>( pBindInfos ) ) );
76255   }
76256 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76257   template<typename Dispatch>
bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> bindInfos,Dispatch const & d) const76258   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindImageMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> bindInfos, Dispatch const &d ) const
76259   {
76260     Result result = static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfos.size() , reinterpret_cast<const VkBindImageMemoryInfo*>( bindInfos.data() ) ) );
76261     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2" );
76262   }
76263 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76264 
76265   template<typename Dispatch>
bindImageMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const76266   VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76267   {
76268     return static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo*>( pBindInfos ) ) );
76269   }
76270 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76271   template<typename Dispatch>
bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> bindInfos,Dispatch const & d) const76272   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> bindInfos, Dispatch const &d ) const
76273   {
76274     Result result = static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfos.size() , reinterpret_cast<const VkBindImageMemoryInfo*>( bindInfos.data() ) ) );
76275     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2KHR" );
76276   }
76277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76278 
76279 #ifdef VK_ENABLE_BETA_EXTENSIONS
76280   template<typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const76281   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
76282   {
76283     return static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR* const*>( ppOffsetInfos ) ) );
76284   }
76285 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76286   template<typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> pOffsetInfos,Dispatch const & d) const76287   VULKAN_HPP_INLINE Result Device::buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const> pOffsetInfos, Dispatch const &d ) const
76288   {
76289 #ifdef VULKAN_HPP_NO_EXCEPTIONS
76290     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
76291 #else
76292     if ( infos.size() != pOffsetInfos.size() )
76293     {
76294       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
76295     }
76296 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
76297     Result result = static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infos.size() , reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR* const*>( pOffsetInfos.data() ) ) );
76298     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::buildAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
76299   }
76300 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76301 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
76302 
76303 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
76304   template<typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const76305   VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76306   {
76307     return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
76308   }
76309 #else
76310   template<typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const76311   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d ) const
76312   {
76313     Result result = static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
76314     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::compileDeferredNV" );
76315   }
76316 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76317 
76318 #ifdef VK_ENABLE_BETA_EXTENSIONS
76319   template<typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const76320   VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76321   {
76322     return static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( pInfo ) ) );
76323   }
76324 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76325   template<typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const76326   VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const &d ) const
76327   {
76328     Result result = static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( &info ) ) );
76329     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::copyAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
76330   }
76331 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76332 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
76333 
76334 #ifdef VK_ENABLE_BETA_EXTENSIONS
76335   template<typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const76336   VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76337   {
76338     return static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( pInfo ) ) );
76339   }
76340 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76341   template<typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const76342   VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const &d ) const
76343   {
76344     Result result = static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( &info ) ) );
76345     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::copyAccelerationStructureToMemoryKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
76346   }
76347 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76348 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
76349 
76350 #ifdef VK_ENABLE_BETA_EXTENSIONS
76351   template<typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const76352   VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76353   {
76354     return static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( pInfo ) ) );
76355   }
76356 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76357   template<typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const76358   VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const &d ) const
76359   {
76360     Result result = static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( &info ) ) );
76361     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::copyMemoryToAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
76362   }
76363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76364 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
76365 
76366 #ifdef VK_ENABLE_BETA_EXTENSIONS
76367   template<typename Dispatch>
createAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure,Dispatch const & d) const76368   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
76369   {
76370     return static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkAccelerationStructureKHR*>( pAccelerationStructure ) ) );
76371   }
76372 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76373   template<typename Dispatch>
createAccelerationStructureKHR(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76374   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>::type Device::createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76375   {
76376     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
76377     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR*>( &accelerationStructure ) ) );
76378     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureKHR" );
76379   }
76380 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76381   template<typename Dispatch>
createAccelerationStructureKHRUnique(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76382   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<AccelerationStructureKHR,Dispatch>>::type Device::createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76383   {
76384     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
76385     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR*>( &accelerationStructure ) ) );
76386 
76387     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76388     return createResultValue<AccelerationStructureKHR,Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureKHRUnique", deleter );
76389   }
76390 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76391 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76392 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
76393 
76394   template<typename Dispatch>
createAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure,Dispatch const & d) const76395   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
76396   {
76397     return static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkAccelerationStructureNV*>( pAccelerationStructure ) ) );
76398   }
76399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76400   template<typename Dispatch>
createAccelerationStructureNV(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76401   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76402   {
76403     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
76404     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV*>( &accelerationStructure ) ) );
76405     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNV" );
76406   }
76407 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76408   template<typename Dispatch>
createAccelerationStructureNVUnique(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76409   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<AccelerationStructureNV,Dispatch>>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76410   {
76411     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
76412     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV*>( &accelerationStructure ) ) );
76413 
76414     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76415     return createResultValue<AccelerationStructureNV,Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNVUnique", deleter );
76416   }
76417 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76418 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76419 
76420   template<typename Dispatch>
createBuffer(const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Buffer * pBuffer,Dispatch const & d) const76421   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
76422   {
76423     return static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBuffer*>( pBuffer ) ) );
76424   }
76425 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76426   template<typename Dispatch>
createBuffer(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76427   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Buffer>::type Device::createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76428   {
76429     VULKAN_HPP_NAMESPACE::Buffer buffer;
76430     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer*>( &buffer ) ) );
76431     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBuffer" );
76432   }
76433 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76434   template<typename Dispatch>
createBufferUnique(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76435   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76436   {
76437     VULKAN_HPP_NAMESPACE::Buffer buffer;
76438     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer*>( &buffer ) ) );
76439 
76440     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76441     return createResultValue<Buffer,Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferUnique", deleter );
76442   }
76443 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76444 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76445 
76446   template<typename Dispatch>
createBufferView(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::BufferView * pView,Dispatch const & d) const76447   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
76448   {
76449     return static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBufferView*>( pView ) ) );
76450   }
76451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76452   template<typename Dispatch>
createBufferView(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76453   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferView>::type Device::createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76454   {
76455     VULKAN_HPP_NAMESPACE::BufferView view;
76456     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView*>( &view ) ) );
76457     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferView" );
76458   }
76459 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76460   template<typename Dispatch>
createBufferViewUnique(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76461   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76462   {
76463     VULKAN_HPP_NAMESPACE::BufferView view;
76464     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView*>( &view ) ) );
76465 
76466     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76467     return createResultValue<BufferView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferViewUnique", deleter );
76468   }
76469 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76470 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76471 
76472   template<typename Dispatch>
createCommandPool(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool,Dispatch const & d) const76473   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
76474   {
76475     return static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkCommandPool*>( pCommandPool ) ) );
76476   }
76477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76478   template<typename Dispatch>
createCommandPool(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76479   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CommandPool>::type Device::createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76480   {
76481     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
76482     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool*>( &commandPool ) ) );
76483     return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPool" );
76484   }
76485 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76486   template<typename Dispatch>
createCommandPoolUnique(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76487   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76488   {
76489     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
76490     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool*>( &commandPool ) ) );
76491 
76492     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76493     return createResultValue<CommandPool,Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPoolUnique", deleter );
76494   }
76495 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76496 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76497 
76498   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) const76499   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
76500   {
76501     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 ) ) );
76502   }
76503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76504   template<typename Allocator, typename Dispatch>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76505   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76506   {
76507     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
76508     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
76509     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
76510   }
76511   template<typename Allocator, typename Dispatch>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const76512   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
76513   {
76514     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
76515     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
76516     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
76517   }
76518   template<typename Dispatch>
createComputePipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76519   VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76520   {
76521     Pipeline pipeline;
76522     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkComputePipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
76523     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipeline", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
76524   }
76525 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76526   template<typename Allocator, typename Dispatch>
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76527   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76528   {
76529     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
76530     std::vector<Pipeline> pipelines( createInfos.size() );
76531     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
76532     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
76533     {
76534       uniquePipelines.reserve( createInfos.size() );
76535       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76536       for ( size_t i=0 ; i<createInfos.size() ; i++ )
76537       {
76538         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
76539       }
76540     }
76541 
76542     return createResultValue( result, uniquePipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
76543   }
76544   template<typename Allocator, typename Dispatch>
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const76545   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
76546   {
76547     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
76548     std::vector<Pipeline> pipelines( createInfos.size() );
76549     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
76550     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
76551     {
76552       uniquePipelines.reserve( createInfos.size() );
76553       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76554       for ( size_t i=0 ; i<createInfos.size() ; i++ )
76555       {
76556         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
76557       }
76558     }
76559 
76560     return createResultValue( result, uniquePipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
76561   }
76562   template<typename Dispatch>
createComputePipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76563   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
76564   {
76565     Pipeline pipeline;
76566     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkComputePipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
76567 
76568     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76569     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelineUnique", { Result::eSuccess, Result::ePipelineCompileRequiredEXT }, deleter );
76570   }
76571 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76572 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76573 
76574 #ifdef VK_ENABLE_BETA_EXTENSIONS
76575   template<typename Dispatch>
createDeferredOperationKHR(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation,Dispatch const & d) const76576   VULKAN_HPP_INLINE Result Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
76577   {
76578     return static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDeferredOperationKHR*>( pDeferredOperation ) ) );
76579   }
76580 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76581   template<typename Dispatch>
createDeferredOperationKHR(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76582   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type Device::createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76583   {
76584     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
76585     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR*>( &deferredOperation ) ) );
76586     return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING"::Device::createDeferredOperationKHR" );
76587   }
76588 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76589   template<typename Dispatch>
createDeferredOperationKHRUnique(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76590   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DeferredOperationKHR,Dispatch>>::type Device::createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76591   {
76592     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
76593     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR*>( &deferredOperation ) ) );
76594 
76595     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76596     return createResultValue<DeferredOperationKHR,Dispatch>( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING"::Device::createDeferredOperationKHRUnique", deleter );
76597   }
76598 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76599 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76600 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
76601 
76602   template<typename Dispatch>
createDescriptorPool(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool,Dispatch const & d) const76603   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
76604   {
76605     return static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorPool*>( pDescriptorPool ) ) );
76606   }
76607 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76608   template<typename Dispatch>
createDescriptorPool(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76609   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorPool>::type Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76610   {
76611     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
76612     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool*>( &descriptorPool ) ) );
76613     return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPool" );
76614   }
76615 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76616   template<typename Dispatch>
createDescriptorPoolUnique(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76617   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76618   {
76619     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
76620     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool*>( &descriptorPool ) ) );
76621 
76622     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76623     return createResultValue<DescriptorPool,Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPoolUnique", deleter );
76624   }
76625 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76626 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76627 
76628   template<typename Dispatch>
createDescriptorSetLayout(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout,Dispatch const & d) const76629   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
76630   {
76631     return static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorSetLayout*>( pSetLayout ) ) );
76632   }
76633 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76634   template<typename Dispatch>
createDescriptorSetLayout(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76635   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>::type Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76636   {
76637     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
76638     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout*>( &setLayout ) ) );
76639     return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayout" );
76640   }
76641 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76642   template<typename Dispatch>
createDescriptorSetLayoutUnique(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76643   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76644   {
76645     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
76646     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout*>( &setLayout ) ) );
76647 
76648     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76649     return createResultValue<DescriptorSetLayout,Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayoutUnique", deleter );
76650   }
76651 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76652 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76653 
76654   template<typename Dispatch>
createDescriptorUpdateTemplate(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const76655   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
76656   {
76657     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
76658   }
76659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76660   template<typename Dispatch>
createDescriptorUpdateTemplate(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76661   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76662   {
76663     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
76664     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
76665     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplate" );
76666   }
76667 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76668   template<typename Dispatch>
createDescriptorUpdateTemplateUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76669   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76670   {
76671     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
76672     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
76673 
76674     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76675     return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateUnique", deleter );
76676   }
76677 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76678 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76679 
76680   template<typename Dispatch>
createDescriptorUpdateTemplateKHR(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const76681   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
76682   {
76683     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
76684   }
76685 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76686   template<typename Dispatch>
createDescriptorUpdateTemplateKHR(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76687   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76688   {
76689     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
76690     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
76691     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHR" );
76692   }
76693 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76694   template<typename Dispatch>
createDescriptorUpdateTemplateKHRUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76695   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76696   {
76697     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
76698     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
76699 
76700     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76701     return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHRUnique", deleter );
76702   }
76703 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76704 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76705 
76706   template<typename Dispatch>
createEvent(const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Event * pEvent,Dispatch const & d) const76707   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
76708   {
76709     return static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkEvent*>( pEvent ) ) );
76710   }
76711 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76712   template<typename Dispatch>
createEvent(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76713   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Event>::type Device::createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76714   {
76715     VULKAN_HPP_NAMESPACE::Event event;
76716     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent*>( &event ) ) );
76717     return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEvent" );
76718   }
76719 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76720   template<typename Dispatch>
createEventUnique(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76721   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Event,Dispatch>>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76722   {
76723     VULKAN_HPP_NAMESPACE::Event event;
76724     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent*>( &event ) ) );
76725 
76726     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76727     return createResultValue<Event,Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEventUnique", deleter );
76728   }
76729 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76730 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76731 
76732   template<typename Dispatch>
createFence(const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const76733   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
76734   {
76735     return static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
76736   }
76737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76738   template<typename Dispatch>
createFence(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76739   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76740   {
76741     VULKAN_HPP_NAMESPACE::Fence fence;
76742     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
76743     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFence" );
76744   }
76745 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76746   template<typename Dispatch>
createFenceUnique(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76747   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76748   {
76749     VULKAN_HPP_NAMESPACE::Fence fence;
76750     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
76751 
76752     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76753     return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFenceUnique", deleter );
76754   }
76755 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76757 
76758   template<typename Dispatch>
createFramebuffer(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer,Dispatch const & d) const76759   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
76760   {
76761     return static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFramebuffer*>( pFramebuffer ) ) );
76762   }
76763 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76764   template<typename Dispatch>
createFramebuffer(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76765   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Framebuffer>::type Device::createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76766   {
76767     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
76768     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer*>( &framebuffer ) ) );
76769     return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebuffer" );
76770   }
76771 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76772   template<typename Dispatch>
createFramebufferUnique(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76773   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76774   {
76775     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
76776     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer*>( &framebuffer ) ) );
76777 
76778     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76779     return createResultValue<Framebuffer,Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebufferUnique", deleter );
76780   }
76781 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76782 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76783 
76784   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) const76785   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
76786   {
76787     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 ) ) );
76788   }
76789 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76790   template<typename Allocator, typename Dispatch>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76791   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76792   {
76793     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
76794     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
76795     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
76796   }
76797   template<typename Allocator, typename Dispatch>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const76798   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
76799   {
76800     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
76801     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
76802     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
76803   }
76804   template<typename Dispatch>
createGraphicsPipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76805   VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76806   {
76807     Pipeline pipeline;
76808     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
76809     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipeline", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
76810   }
76811 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76812   template<typename Allocator, typename Dispatch>
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76813   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76814   {
76815     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
76816     std::vector<Pipeline> pipelines( createInfos.size() );
76817     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
76818     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
76819     {
76820       uniquePipelines.reserve( createInfos.size() );
76821       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76822       for ( size_t i=0 ; i<createInfos.size() ; i++ )
76823       {
76824         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
76825       }
76826     }
76827 
76828     return createResultValue( result, uniquePipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
76829   }
76830   template<typename Allocator, typename Dispatch>
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const76831   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
76832   {
76833     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
76834     std::vector<Pipeline> pipelines( createInfos.size() );
76835     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
76836     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
76837     {
76838       uniquePipelines.reserve( createInfos.size() );
76839       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76840       for ( size_t i=0 ; i<createInfos.size() ; i++ )
76841       {
76842         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
76843       }
76844     }
76845 
76846     return createResultValue( result, uniquePipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
76847   }
76848   template<typename Dispatch>
createGraphicsPipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76849   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
76850   {
76851     Pipeline pipeline;
76852     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
76853 
76854     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76855     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelineUnique", { Result::eSuccess, Result::ePipelineCompileRequiredEXT }, deleter );
76856   }
76857 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76858 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76859 
76860   template<typename Dispatch>
createImage(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Image * pImage,Dispatch const & d) const76861   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
76862   {
76863     return static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImage*>( pImage ) ) );
76864   }
76865 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76866   template<typename Dispatch>
createImage(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76867   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Image>::type Device::createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76868   {
76869     VULKAN_HPP_NAMESPACE::Image image;
76870     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage*>( &image ) ) );
76871     return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImage" );
76872   }
76873 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76874   template<typename Dispatch>
createImageUnique(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76875   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Image,Dispatch>>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76876   {
76877     VULKAN_HPP_NAMESPACE::Image image;
76878     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage*>( &image ) ) );
76879 
76880     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76881     return createResultValue<Image,Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageUnique", deleter );
76882   }
76883 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76884 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76885 
76886   template<typename Dispatch>
createImageView(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ImageView * pView,Dispatch const & d) const76887   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
76888   {
76889     return static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImageView*>( pView ) ) );
76890   }
76891 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76892   template<typename Dispatch>
createImageView(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76893   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageView>::type Device::createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76894   {
76895     VULKAN_HPP_NAMESPACE::ImageView view;
76896     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView*>( &view ) ) );
76897     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageView" );
76898   }
76899 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76900   template<typename Dispatch>
createImageViewUnique(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76901   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76902   {
76903     VULKAN_HPP_NAMESPACE::ImageView view;
76904     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView*>( &view ) ) );
76905 
76906     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76907     return createResultValue<ImageView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageViewUnique", deleter );
76908   }
76909 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76910 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76911 
76912   template<typename Dispatch>
createIndirectCommandsLayoutNV(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout,Dispatch const & d) const76913   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
76914   {
76915     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkIndirectCommandsLayoutNV*>( pIndirectCommandsLayout ) ) );
76916   }
76917 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76918   template<typename Dispatch>
createIndirectCommandsLayoutNV(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76919   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>::type Device::createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76920   {
76921     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
76922     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV*>( &indirectCommandsLayout ) ) );
76923     return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNV" );
76924   }
76925 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76926   template<typename Dispatch>
createIndirectCommandsLayoutNVUnique(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76927   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNV,Dispatch>>::type Device::createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76928   {
76929     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
76930     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV*>( &indirectCommandsLayout ) ) );
76931 
76932     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76933     return createResultValue<IndirectCommandsLayoutNV,Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVUnique", deleter );
76934   }
76935 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76936 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76937 
76938   template<typename Dispatch>
createPipelineCache(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache,Dispatch const & d) const76939   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
76940   {
76941     return static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineCache*>( pPipelineCache ) ) );
76942   }
76943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76944   template<typename Dispatch>
createPipelineCache(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76945   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineCache>::type Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76946   {
76947     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
76948     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache*>( &pipelineCache ) ) );
76949     return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCache" );
76950   }
76951 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76952   template<typename Dispatch>
createPipelineCacheUnique(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76953   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76954   {
76955     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
76956     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache*>( &pipelineCache ) ) );
76957 
76958     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76959     return createResultValue<PipelineCache,Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCacheUnique", deleter );
76960   }
76961 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76962 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76963 
76964   template<typename Dispatch>
createPipelineLayout(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout,Dispatch const & d) const76965   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
76966   {
76967     return static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineLayout*>( pPipelineLayout ) ) );
76968   }
76969 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76970   template<typename Dispatch>
createPipelineLayout(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76971   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineLayout>::type Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76972   {
76973     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
76974     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout*>( &pipelineLayout ) ) );
76975     return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayout" );
76976   }
76977 #ifndef VULKAN_HPP_NO_SMART_HANDLE
76978   template<typename Dispatch>
createPipelineLayoutUnique(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76979   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76980   {
76981     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
76982     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout*>( &pipelineLayout ) ) );
76983 
76984     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
76985     return createResultValue<PipelineLayout,Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayoutUnique", deleter );
76986   }
76987 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
76988 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
76989 
76990   template<typename Dispatch>
createPrivateDataSlotEXT(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot,Dispatch const & d) const76991   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
76992   {
76993     return static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPrivateDataSlotEXT*>( pPrivateDataSlot ) ) );
76994   }
76995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
76996   template<typename Dispatch>
createPrivateDataSlotEXT(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const76997   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>::type Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
76998   {
76999     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
77000     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT*>( &privateDataSlot ) ) );
77001     return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING"::Device::createPrivateDataSlotEXT" );
77002   }
77003 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77004   template<typename Dispatch>
createPrivateDataSlotEXTUnique(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77005   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PrivateDataSlotEXT,Dispatch>>::type Device::createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77006   {
77007     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
77008     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT*>( &privateDataSlot ) ) );
77009 
77010     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77011     return createResultValue<PrivateDataSlotEXT,Dispatch>( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING"::Device::createPrivateDataSlotEXTUnique", deleter );
77012   }
77013 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77014 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77015 
77016   template<typename Dispatch>
createQueryPool(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool,Dispatch const & d) const77017   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
77018   {
77019     return static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkQueryPool*>( pQueryPool ) ) );
77020   }
77021 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77022   template<typename Dispatch>
createQueryPool(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77023   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::QueryPool>::type Device::createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77024   {
77025     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
77026     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool*>( &queryPool ) ) );
77027     return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPool" );
77028   }
77029 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77030   template<typename Dispatch>
createQueryPoolUnique(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77031   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77032   {
77033     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
77034     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool*>( &queryPool ) ) );
77035 
77036     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77037     return createResultValue<QueryPool,Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPoolUnique", deleter );
77038   }
77039 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77040 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77041 
77042 #ifdef VK_ENABLE_BETA_EXTENSIONS
77043   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) const77044   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
77045   {
77046     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 ) ) );
77047   }
77048 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77049   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77050   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77051   {
77052     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
77053     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
77054     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } );
77055   }
77056   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const77057   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
77058   {
77059     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
77060     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
77061     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } );
77062   }
77063   template<typename Dispatch>
createRayTracingPipelineKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77064   VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77065   {
77066     Pipeline pipeline;
77067     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
77068     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } );
77069   }
77070 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77071   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77072   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77073   {
77074     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
77075     std::vector<Pipeline> pipelines( createInfos.size() );
77076     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
77077     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 ) )
77078     {
77079       uniquePipelines.reserve( createInfos.size() );
77080       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77081       for ( size_t i=0 ; i<createInfos.size() ; i++ )
77082       {
77083         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
77084       }
77085     }
77086 
77087     return createResultValue( result, 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 } );
77088   }
77089   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const77090   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
77091   {
77092     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
77093     std::vector<Pipeline> pipelines( createInfos.size() );
77094     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
77095     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 ) )
77096     {
77097       uniquePipelines.reserve( createInfos.size() );
77098       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77099       for ( size_t i=0 ; i<createInfos.size() ; i++ )
77100       {
77101         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
77102       }
77103     }
77104 
77105     return createResultValue( result, 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 } );
77106   }
77107   template<typename Dispatch>
createRayTracingPipelineKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77108   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
77109   {
77110     Pipeline pipeline;
77111     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
77112 
77113     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77114     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineKHRUnique", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT }, deleter );
77115   }
77116 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77117 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77118 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
77119 
77120   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) const77121   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
77122   {
77123     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 ) ) );
77124   }
77125 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77126   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77127   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77128   {
77129     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
77130     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
77131     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
77132   }
77133   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const77134   VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
77135   {
77136     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
77137     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
77138     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
77139   }
77140   template<typename Dispatch>
createRayTracingPipelineNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77141   VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77142   {
77143     Pipeline pipeline;
77144     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
77145     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
77146   }
77147 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77148   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77149   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77150   {
77151     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
77152     std::vector<Pipeline> pipelines( createInfos.size() );
77153     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
77154     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
77155     {
77156       uniquePipelines.reserve( createInfos.size() );
77157       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77158       for ( size_t i=0 ; i<createInfos.size() ; i++ )
77159       {
77160         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
77161       }
77162     }
77163 
77164     return createResultValue( result, uniquePipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
77165   }
77166   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const77167   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
77168   {
77169     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
77170     std::vector<Pipeline> pipelines( createInfos.size() );
77171     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
77172     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
77173     {
77174       uniquePipelines.reserve( createInfos.size() );
77175       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77176       for ( size_t i=0 ; i<createInfos.size() ; i++ )
77177       {
77178         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
77179       }
77180     }
77181 
77182     return createResultValue( result, uniquePipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
77183   }
77184   template<typename Dispatch>
createRayTracingPipelineNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77185   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
77186   {
77187     Pipeline pipeline;
77188     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
77189 
77190     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77191     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNVUnique", { Result::eSuccess, Result::ePipelineCompileRequiredEXT }, deleter );
77192   }
77193 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77194 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77195 
77196   template<typename Dispatch>
createRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const77197   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
77198   {
77199     return static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
77200   }
77201 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77202   template<typename Dispatch>
createRenderPass(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77203   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type Device::createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77204   {
77205     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
77206     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
77207     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass" );
77208   }
77209 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77210   template<typename Dispatch>
createRenderPassUnique(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77211   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77212   {
77213     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
77214     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
77215 
77216     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77217     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPassUnique", deleter );
77218   }
77219 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77220 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77221 
77222   template<typename Dispatch>
createRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const77223   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
77224   {
77225     return static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
77226   }
77227 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77228   template<typename Dispatch>
createRenderPass2(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77229   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type Device::createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77230   {
77231     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
77232     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
77233     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2" );
77234   }
77235 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77236   template<typename Dispatch>
createRenderPass2Unique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77237   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77238   {
77239     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
77240     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
77241 
77242     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77243     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2Unique", deleter );
77244   }
77245 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77246 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77247 
77248   template<typename Dispatch>
createRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const77249   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
77250   {
77251     return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
77252   }
77253 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77254   template<typename Dispatch>
createRenderPass2KHR(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77255   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type Device::createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77256   {
77257     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
77258     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
77259     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHR" );
77260   }
77261 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77262   template<typename Dispatch>
createRenderPass2KHRUnique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77263   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77264   {
77265     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
77266     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
77267 
77268     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77269     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHRUnique", deleter );
77270   }
77271 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77273 
77274   template<typename Dispatch>
createSampler(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Sampler * pSampler,Dispatch const & d) const77275   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
77276   {
77277     return static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSampler*>( pSampler ) ) );
77278   }
77279 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77280   template<typename Dispatch>
createSampler(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77281   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Sampler>::type Device::createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77282   {
77283     VULKAN_HPP_NAMESPACE::Sampler sampler;
77284     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler*>( &sampler ) ) );
77285     return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSampler" );
77286   }
77287 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77288   template<typename Dispatch>
createSamplerUnique(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77289   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77290   {
77291     VULKAN_HPP_NAMESPACE::Sampler sampler;
77292     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler*>( &sampler ) ) );
77293 
77294     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77295     return createResultValue<Sampler,Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerUnique", deleter );
77296   }
77297 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77298 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77299 
77300   template<typename Dispatch>
createSamplerYcbcrConversion(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const77301   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
77302   {
77303     return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
77304   }
77305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77306   template<typename Dispatch>
createSamplerYcbcrConversion(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77307   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77308   {
77309     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
77310     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
77311     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversion" );
77312   }
77313 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77314   template<typename Dispatch>
createSamplerYcbcrConversionUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77315   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77316   {
77317     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
77318     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
77319 
77320     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77321     return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionUnique", deleter );
77322   }
77323 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77324 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77325 
77326   template<typename Dispatch>
createSamplerYcbcrConversionKHR(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const77327   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
77328   {
77329     return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
77330   }
77331 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77332   template<typename Dispatch>
createSamplerYcbcrConversionKHR(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77333   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77334   {
77335     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
77336     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
77337     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHR" );
77338   }
77339 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77340   template<typename Dispatch>
createSamplerYcbcrConversionKHRUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77341   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77342   {
77343     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
77344     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
77345 
77346     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77347     return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHRUnique", deleter );
77348   }
77349 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77350 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77351 
77352   template<typename Dispatch>
createSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore,Dispatch const & d) const77353   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
77354   {
77355     return static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSemaphore*>( pSemaphore ) ) );
77356   }
77357 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77358   template<typename Dispatch>
createSemaphore(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77359   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Semaphore>::type Device::createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77360   {
77361     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
77362     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore*>( &semaphore ) ) );
77363     return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphore" );
77364   }
77365 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77366   template<typename Dispatch>
createSemaphoreUnique(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77367   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77368   {
77369     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
77370     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore*>( &semaphore ) ) );
77371 
77372     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77373     return createResultValue<Semaphore,Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphoreUnique", deleter );
77374   }
77375 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77376 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77377 
77378   template<typename Dispatch>
createShaderModule(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule,Dispatch const & d) const77379   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
77380   {
77381     return static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkShaderModule*>( pShaderModule ) ) );
77382   }
77383 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77384   template<typename Dispatch>
createShaderModule(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77385   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ShaderModule>::type Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77386   {
77387     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
77388     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule*>( &shaderModule ) ) );
77389     return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModule" );
77390   }
77391 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77392   template<typename Dispatch>
createShaderModuleUnique(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77393   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77394   {
77395     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
77396     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule*>( &shaderModule ) ) );
77397 
77398     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77399     return createResultValue<ShaderModule,Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModuleUnique", deleter );
77400   }
77401 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77402 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77403 
77404   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) const77405   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
77406   {
77407     return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchains ) ) );
77408   }
77409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77410   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77411   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77412   {
77413     std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size() );
77414     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( swapchains.data() ) ) );
77415     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
77416   }
77417   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const77418   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
77419   {
77420     std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size(), vectorAllocator );
77421     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( swapchains.data() ) ) );
77422     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
77423   }
77424   template<typename Dispatch>
createSharedSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77425   VULKAN_HPP_INLINE typename ResultValueType<SwapchainKHR>::type Device::createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77426   {
77427     SwapchainKHR swapchain;
77428     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
77429     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHR" );
77430   }
77431 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77432   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77433   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77434   {
77435     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> uniqueSwapchainKHRs;
77436     std::vector<SwapchainKHR> swapchainKHRs( createInfos.size() );
77437     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>(swapchainKHRs.data()) ) );
77438     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
77439     {
77440       uniqueSwapchainKHRs.reserve( createInfos.size() );
77441       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77442       for ( size_t i=0 ; i<createInfos.size() ; i++ )
77443       {
77444         uniqueSwapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchainKHRs[i], deleter ) );
77445       }
77446     }
77447 
77448     return createResultValue( result, uniqueSwapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
77449   }
77450   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const77451   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
77452   {
77453     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> uniqueSwapchainKHRs( vectorAllocator );
77454     std::vector<SwapchainKHR> swapchainKHRs( createInfos.size() );
77455     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>(swapchainKHRs.data()) ) );
77456     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
77457     {
77458       uniqueSwapchainKHRs.reserve( createInfos.size() );
77459       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77460       for ( size_t i=0 ; i<createInfos.size() ; i++ )
77461       {
77462         uniqueSwapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchainKHRs[i], deleter ) );
77463       }
77464     }
77465 
77466     return createResultValue( result, uniqueSwapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
77467   }
77468   template<typename Dispatch>
createSharedSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77469   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77470   {
77471     SwapchainKHR swapchain;
77472     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
77473 
77474     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77475     return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHRUnique", deleter );
77476   }
77477 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77478 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77479 
77480   template<typename Dispatch>
createSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain,Dispatch const & d) const77481   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
77482   {
77483     return static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchain ) ) );
77484   }
77485 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77486   template<typename Dispatch>
createSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77487   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SwapchainKHR>::type Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77488   {
77489     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
77490     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
77491     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHR" );
77492   }
77493 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77494   template<typename Dispatch>
createSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77495   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77496   {
77497     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
77498     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
77499 
77500     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77501     return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHRUnique", deleter );
77502   }
77503 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77504 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77505 
77506   template<typename Dispatch>
createValidationCacheEXT(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache,Dispatch const & d) const77507   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
77508   {
77509     return static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkValidationCacheEXT*>( pValidationCache ) ) );
77510   }
77511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77512   template<typename Dispatch>
createValidationCacheEXT(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77513   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77514   {
77515     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
77516     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT*>( &validationCache ) ) );
77517     return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXT" );
77518   }
77519 #ifndef VULKAN_HPP_NO_SMART_HANDLE
77520   template<typename Dispatch>
createValidationCacheEXTUnique(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77521   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
77522   {
77523     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
77524     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT*>( &validationCache ) ) );
77525 
77526     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
77527     return createResultValue<ValidationCacheEXT,Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXTUnique", deleter );
77528   }
77529 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
77530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77531 
77532   template<typename Dispatch>
debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo,Dispatch const & d) const77533   VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77534   {
77535     return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( pNameInfo ) ) );
77536   }
77537 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77538   template<typename Dispatch>
debugMarkerSetObjectNameEXT(const DebugMarkerObjectNameInfoEXT & nameInfo,Dispatch const & d) const77539   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d ) const
77540   {
77541     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( &nameInfo ) ) );
77542     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectNameEXT" );
77543   }
77544 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77545 
77546   template<typename Dispatch>
debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo,Dispatch const & d) const77547   VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77548   {
77549     return static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( pTagInfo ) ) );
77550   }
77551 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77552   template<typename Dispatch>
debugMarkerSetObjectTagEXT(const DebugMarkerObjectTagInfoEXT & tagInfo,Dispatch const & d) const77553   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d ) const
77554   {
77555     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( &tagInfo ) ) );
77556     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectTagEXT" );
77557   }
77558 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77559 
77560 #ifdef VK_ENABLE_BETA_EXTENSIONS
77561 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
77562   template<typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const77563   VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77564   {
77565     return static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
77566   }
77567 #else
77568   template<typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const77569   VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d ) const
77570   {
77571     Result result = static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
77572     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::deferredOperationJoinKHR", { Result::eSuccess, Result::eThreadDoneKHR, Result::eThreadIdleKHR } );
77573   }
77574 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77575 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
77576 
77577   template<typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77578   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77579   {
77580     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77581   }
77582 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77583   template<typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77584   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77585   {
77586     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77587   }
77588 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77589 
77590   template<typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77591   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77592   {
77593     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77594   }
77595 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77596   template<typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77597   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77598   {
77599     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77600   }
77601 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77602 
77603   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77604   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77605   {
77606     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77607   }
77608 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77609   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77610   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77611   {
77612     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77613   }
77614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77615 
77616   template<typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77617   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77618   {
77619     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77620   }
77621 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77622   template<typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77623   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77624   {
77625     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77626   }
77627 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77628 
77629   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77630   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77631   {
77632     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77633   }
77634 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77635   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77636   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77637   {
77638     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77639   }
77640 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77641 
77642   template<typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77643   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77644   {
77645     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77646   }
77647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77648   template<typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77649   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77650   {
77651     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77652   }
77653 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77654 
77655   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77656   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77657   {
77658     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77659   }
77660 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77661   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77662   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77663   {
77664     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77665   }
77666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77667 
77668   template<typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77669   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77670   {
77671     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77672   }
77673 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77674   template<typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77675   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77676   {
77677     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77678   }
77679 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77680 
77681   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77682   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77683   {
77684     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77685   }
77686 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77687   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77688   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77689   {
77690     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77691   }
77692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77693 
77694 #ifdef VK_ENABLE_BETA_EXTENSIONS
77695   template<typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77696   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77697   {
77698     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77699   }
77700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77701   template<typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77702   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77703   {
77704     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77705   }
77706 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77707 
77708   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77709   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77710   {
77711     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77712   }
77713 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77714   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77715   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77716   {
77717     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77718   }
77719 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77720 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
77721 
77722   template<typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77723   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77724   {
77725     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77726   }
77727 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77728   template<typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77729   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77730   {
77731     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77732   }
77733 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77734 
77735   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77736   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77737   {
77738     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77739   }
77740 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77741   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77742   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77743   {
77744     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77745   }
77746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77747 
77748   template<typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77749   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77750   {
77751     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77752   }
77753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77754   template<typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77755   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77756   {
77757     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77758   }
77759 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77760 
77761   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77762   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77763   {
77764     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77765   }
77766 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77767   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77768   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77769   {
77770     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77771   }
77772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77773 
77774   template<typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77775   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77776   {
77777     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77778   }
77779 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77780   template<typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77781   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77782   {
77783     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77784   }
77785 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77786 
77787   template<typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77788   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77789   {
77790     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77791   }
77792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77793   template<typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77794   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77795   {
77796     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77797   }
77798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77799 
77800   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77801   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77802   {
77803     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77804   }
77805 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77806   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77807   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77808   {
77809     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77810   }
77811 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77812 
77813   template<typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77814   VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77815   {
77816     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77817   }
77818 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77819   template<typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77820   VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77821   {
77822     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77823   }
77824 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77825 
77826   template<typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77827   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77828   {
77829     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77830   }
77831 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77832   template<typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77833   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77834   {
77835     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77836   }
77837 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77838 
77839   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77840   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77841   {
77842     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77843   }
77844 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77845   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77846   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77847   {
77848     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77849   }
77850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77851 
77852   template<typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77853   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77854   {
77855     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77856   }
77857 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77858   template<typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77859   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77860   {
77861     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77862   }
77863 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77864 
77865   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77866   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77867   {
77868     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77869   }
77870 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77871   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77872   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77873   {
77874     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77875   }
77876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77877 
77878   template<typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77879   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77880   {
77881     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77882   }
77883 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77884   template<typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77885   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77886   {
77887     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77888   }
77889 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77890 
77891   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77892   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77893   {
77894     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77895   }
77896 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77897   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77898   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77899   {
77900     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77901   }
77902 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77903 
77904   template<typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77905   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77906   {
77907     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77908   }
77909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77910   template<typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77911   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77912   {
77913     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77914   }
77915 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77916 
77917   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77918   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77919   {
77920     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77921   }
77922 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77923   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77924   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77925   {
77926     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77927   }
77928 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77929 
77930   template<typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77931   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77932   {
77933     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77934   }
77935 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77936   template<typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77937   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77938   {
77939     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77940   }
77941 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77942 
77943   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77944   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77945   {
77946     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77947   }
77948 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77949   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77950   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77951   {
77952     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77953   }
77954 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77955 
77956   template<typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77957   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77958   {
77959     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77960   }
77961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77962   template<typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77963   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77964   {
77965     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77966   }
77967 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77968 
77969   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77970   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77971   {
77972     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77973   }
77974 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77975   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77976   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77977   {
77978     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77979   }
77980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77981 
77982   template<typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77983   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77984   {
77985     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77986   }
77987 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
77988   template<typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const77989   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
77990   {
77991     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
77992   }
77993 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
77994 
77995   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const77996   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
77997   {
77998     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
77999   }
78000 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78001   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78002   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78003   {
78004     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78005   }
78006 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78007 
78008   template<typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78009   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78010   {
78011     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78012   }
78013 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78014   template<typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78015   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78016   {
78017     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78018   }
78019 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78020 
78021   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78022   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78023   {
78024     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78025   }
78026 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78027   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78028   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78029   {
78030     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78031   }
78032 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78033 
78034   template<typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78035   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78036   {
78037     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78038   }
78039 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78040   template<typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78041   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78042   {
78043     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78044   }
78045 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78046 
78047   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78048   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78049   {
78050     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78051   }
78052 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78053   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78054   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78055   {
78056     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78057   }
78058 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78059 
78060   template<typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78061   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78062   {
78063     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78064   }
78065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78066   template<typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78067   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78068   {
78069     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78070   }
78071 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78072 
78073   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78074   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78075   {
78076     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78077   }
78078 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78079   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78080   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78081   {
78082     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78083   }
78084 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78085 
78086   template<typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78087   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78088   {
78089     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78090   }
78091 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78092   template<typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78093   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78094   {
78095     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78096   }
78097 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78098 
78099   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78100   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78101   {
78102     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78103   }
78104 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78105   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78106   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78107   {
78108     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78109   }
78110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78111 
78112   template<typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78113   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78114   {
78115     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78116   }
78117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78118   template<typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78119   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78120   {
78121     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78122   }
78123 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78124 
78125   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78126   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78127   {
78128     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78129   }
78130 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78131   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78132   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78133   {
78134     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78135   }
78136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78137 
78138   template<typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78139   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78140   {
78141     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78142   }
78143 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78144   template<typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78145   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78146   {
78147     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78148   }
78149 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78150 
78151   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78152   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78153   {
78154     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78155   }
78156 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78157   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78158   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78159   {
78160     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78161   }
78162 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78163 
78164   template<typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78165   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78166   {
78167     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78168   }
78169 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78170   template<typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78171   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78172   {
78173     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78174   }
78175 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78176 
78177   template<typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78178   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78179   {
78180     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78181   }
78182 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78183   template<typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78184   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78185   {
78186     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78187   }
78188 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78189 
78190   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78191   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78192   {
78193     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78194   }
78195 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78196   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78197   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78198   {
78199     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78200   }
78201 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78202 
78203   template<typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78204   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78205   {
78206     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78207   }
78208 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78209   template<typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78210   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78211   {
78212     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78213   }
78214 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78215 
78216   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78217   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78218   {
78219     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78220   }
78221 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78222   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78223   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78224   {
78225     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78226   }
78227 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78228 
78229   template<typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78230   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78231   {
78232     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78233   }
78234 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78235   template<typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78236   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78237   {
78238     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78239   }
78240 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78241 
78242   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78243   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78244   {
78245     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78246   }
78247 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78248   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78249   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78250   {
78251     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78252   }
78253 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78254 
78255   template<typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78256   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78257   {
78258     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78259   }
78260 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78261   template<typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78262   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78263   {
78264     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78265   }
78266 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78267 
78268   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78269   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78270   {
78271     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78272   }
78273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78274   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78275   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78276   {
78277     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78278   }
78279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78280 
78281   template<typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78282   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78283   {
78284     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78285   }
78286 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78287   template<typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78288   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78289   {
78290     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78291   }
78292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78293 
78294   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78295   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78296   {
78297     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78298   }
78299 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78300   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78301   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78302   {
78303     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78304   }
78305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78306 
78307 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
78308   template<typename Dispatch>
waitIdle(Dispatch const & d) const78309   VULKAN_HPP_INLINE Result Device::waitIdle(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78310   {
78311     return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
78312   }
78313 #else
78314   template<typename Dispatch>
waitIdle(Dispatch const & d) const78315   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::waitIdle(Dispatch const &d ) const
78316   {
78317     Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
78318     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitIdle" );
78319   }
78320 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78321 
78322   template<typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,Dispatch const & d) const78323   VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78324   {
78325     return static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT*>( pDisplayPowerInfo ) ) );
78326   }
78327 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78328   template<typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayPowerInfoEXT & displayPowerInfo,Dispatch const & d) const78329   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d ) const
78330   {
78331     Result result = static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT*>( &displayPowerInfo ) ) );
78332     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::displayPowerControlEXT" );
78333   }
78334 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78335 
78336   template<typename Dispatch>
flushMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const78337   VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78338   {
78339     return static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange*>( pMemoryRanges ) ) );
78340   }
78341 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78342   template<typename Dispatch>
flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> memoryRanges,Dispatch const & d) const78343   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::flushMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> memoryRanges, Dispatch const &d ) const
78344   {
78345     Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast<const VkMappedMemoryRange*>( memoryRanges.data() ) ) );
78346     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::flushMappedMemoryRanges" );
78347   }
78348 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78349 
78350   template<typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const78351   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
78352   {
78353     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
78354   }
78355 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78356   template<typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers,Dispatch const & d) const78357   VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78358   {
78359     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
78360   }
78361 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78362 
78363   template<typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const78364   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
78365   {
78366     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
78367   }
78368 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78369   template<typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers,Dispatch const & d) const78370   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78371   {
78372     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
78373   }
78374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78375 
78376   template<typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const78377   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
78378   {
78379     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ) ) );
78380   }
78381 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78382   template<typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets,Dispatch const & d) const78383   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets, Dispatch const &d ) const
78384   {
78385     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size() , reinterpret_cast<const VkDescriptorSet*>( descriptorSets.data() ) ) );
78386     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::freeDescriptorSets" );
78387   }
78388 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78389 
78390   template<typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const78391   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
78392   {
78393     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ) ) );
78394   }
78395 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78396   template<typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets,Dispatch const & d) const78397   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets, Dispatch const &d ) const
78398   {
78399     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size() , reinterpret_cast<const VkDescriptorSet*>( descriptorSets.data() ) ) );
78400     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::free" );
78401   }
78402 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78403 
78404   template<typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78405   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78406   {
78407     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78408   }
78409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78410   template<typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78411   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78412   {
78413     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78414   }
78415 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78416 
78417   template<typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const78418   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78419   {
78420     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
78421   }
78422 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78423   template<typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const78424   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78425   {
78426     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
78427   }
78428 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78429 
78430 #ifdef VK_ENABLE_BETA_EXTENSIONS
78431   template<typename Dispatch>
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,Dispatch const & d) const78432   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78433   {
78434     return static_cast<DeviceAddress>( d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( pInfo ) ) );
78435   }
78436 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78437   template<typename Dispatch>
getAccelerationStructureAddressKHR(const AccelerationStructureDeviceAddressInfoKHR & info,Dispatch const & d) const78438   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78439   {
78440     return d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( &info ) );
78441   }
78442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78443 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
78444 
78445   template<typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData,Dispatch const & d) const78446   VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78447   {
78448     return static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), dataSize, pData ) );
78449   }
78450 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78451   template<typename T, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,ArrayProxy<T> data,Dispatch const & d) const78452   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, ArrayProxy<T> data, Dispatch const &d ) const
78453   {
78454     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
78455     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" );
78456   }
78457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78458 
78459 #ifdef VK_ENABLE_BETA_EXTENSIONS
78460   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const78461   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78462   {
78463     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
78464   }
78465 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78466   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const78467   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78468   {
78469     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
78470     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
78471     return memoryRequirements;
78472   }
78473   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const78474   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78475   {
78476     StructureChain<X, Y, Z...> structureChain;
78477     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
78478     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
78479     return structureChain;
78480   }
78481 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78482 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
78483 
78484   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements,Dispatch const & d) const78485   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78486   {
78487     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( pInfo ), reinterpret_cast<VkMemoryRequirements2KHR*>( pMemoryRequirements ) );
78488   }
78489 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78490   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const78491   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78492   {
78493     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
78494     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
78495     return memoryRequirements;
78496   }
78497   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const78498   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78499   {
78500     StructureChain<X, Y, Z...> structureChain;
78501     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
78502     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
78503     return structureChain;
78504   }
78505 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78506 
78507 #ifdef VK_USE_PLATFORM_ANDROID_KHR
78508   template<typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer * buffer,VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,Dispatch const & d) const78509   VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78510   {
78511     return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( pProperties ) ) );
78512   }
78513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78514   template<typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const78515   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
78516   {
78517     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
78518     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
78519     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
78520   }
78521   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const78522   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
78523   {
78524     StructureChain<X, Y, Z...> structureChain;
78525     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID& properties = structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
78526     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
78527     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
78528   }
78529 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78530 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
78531 
78532   template<typename Dispatch>
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const78533   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78534   {
78535     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) ) );
78536   }
78537 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78538   template<typename Dispatch>
getBufferAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const78539   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78540   {
78541     return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
78542   }
78543 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78544 
78545   template<typename Dispatch>
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const78546   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78547   {
78548     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) ) );
78549   }
78550 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78551   template<typename Dispatch>
getBufferAddressEXT(const BufferDeviceAddressInfo & info,Dispatch const & d) const78552   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78553   {
78554     return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
78555   }
78556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78557 
78558   template<typename Dispatch>
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const78559   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78560   {
78561     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) ) );
78562   }
78563 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78564   template<typename Dispatch>
getBufferAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const78565   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78566   {
78567     return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
78568   }
78569 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78570 
78571   template<typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const78572   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78573   {
78574     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
78575   }
78576 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78577   template<typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,Dispatch const & d) const78578   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78579   {
78580     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
78581     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
78582     return memoryRequirements;
78583   }
78584 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78585 
78586   template<typename Dispatch>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const78587   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78588   {
78589     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
78590   }
78591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78592   template<typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const78593   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78594   {
78595     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
78596     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
78597     return memoryRequirements;
78598   }
78599   template<typename X, typename Y, typename ...Z, typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const78600   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78601   {
78602     StructureChain<X, Y, Z...> structureChain;
78603     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
78604     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
78605     return structureChain;
78606   }
78607 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78608 
78609   template<typename Dispatch>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const78610   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78611   {
78612     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
78613   }
78614 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78615   template<typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const78616   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78617   {
78618     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
78619     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
78620     return memoryRequirements;
78621   }
78622   template<typename X, typename Y, typename ...Z, typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const78623   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78624   {
78625     StructureChain<X, Y, Z...> structureChain;
78626     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
78627     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
78628     return structureChain;
78629   }
78630 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78631 
78632   template<typename Dispatch>
getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const78633   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78634   {
78635     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) );
78636   }
78637 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78638   template<typename Dispatch>
getBufferOpaqueCaptureAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const78639   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78640   {
78641     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
78642   }
78643 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78644 
78645   template<typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const78646   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78647   {
78648     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) );
78649   }
78650 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78651   template<typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const78652   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78653   {
78654     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
78655   }
78656 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78657 
78658   template<typename Dispatch>
getCalibratedTimestampsEXT(uint32_t timestampCount,const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const78659   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
78660   {
78661     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
78662   }
78663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78664   template<typename Dispatch>
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> timestampInfos,ArrayProxy<uint64_t> timestamps,Dispatch const & d) const78665   VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> timestampInfos, ArrayProxy<uint64_t> timestamps, Dispatch const &d ) const
78666   {
78667 #ifdef VULKAN_HPP_NO_EXCEPTIONS
78668     VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
78669 #else
78670     if ( timestampInfos.size() != timestamps.size() )
78671     {
78672       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" );
78673     }
78674 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
78675     uint64_t maxDeviation;
78676     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
78677     return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" );
78678   }
78679 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78680 
78681 #ifdef VK_ENABLE_BETA_EXTENSIONS
78682 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
78683   template<typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const78684   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78685   {
78686     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
78687   }
78688 #else
78689   template<typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const78690   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78691   {
78692     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
78693   }
78694 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78695 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
78696 
78697 #ifdef VK_ENABLE_BETA_EXTENSIONS
78698 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
78699   template<typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const78700   VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78701   {
78702     return static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
78703   }
78704 #else
78705   template<typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const78706   VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d ) const
78707   {
78708     Result result = static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
78709     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getDeferredOperationResultKHR", { Result::eSuccess, Result::eNotReady } );
78710   }
78711 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78712 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
78713 
78714   template<typename Dispatch>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const78715   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78716   {
78717     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
78718   }
78719 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78720   template<typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const78721   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78722   {
78723     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
78724     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
78725     return support;
78726   }
78727   template<typename X, typename Y, typename ...Z, typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const78728   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78729   {
78730     StructureChain<X, Y, Z...> structureChain;
78731     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport& support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
78732     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
78733     return structureChain;
78734   }
78735 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78736 
78737   template<typename Dispatch>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const78738   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78739   {
78740     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
78741   }
78742 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78743   template<typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const78744   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78745   {
78746     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
78747     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
78748     return support;
78749   }
78750   template<typename X, typename Y, typename ...Z, typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const78751   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78752   {
78753     StructureChain<X, Y, Z...> structureChain;
78754     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport& support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
78755     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
78756     return structureChain;
78757   }
78758 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78759 
78760 #ifdef VK_ENABLE_BETA_EXTENSIONS
78761   template<typename Dispatch>
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR * version,Dispatch const & d) const78762   VULKAN_HPP_INLINE Result Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78763   {
78764     return static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR*>( version ) ) );
78765   }
78766 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78767   template<typename Dispatch>
getAccelerationStructureCompatibilityKHR(const AccelerationStructureVersionKHR & version,Dispatch const & d) const78768   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const &d ) const
78769   {
78770     Result result = static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR*>( &version ) ) );
78771     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureCompatibilityKHR" );
78772   }
78773 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78774 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
78775 
78776   template<typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const78777   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
78778   {
78779     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
78780   }
78781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78782   template<typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const78783   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
78784   {
78785     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
78786     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
78787     return peerMemoryFeatures;
78788   }
78789 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78790 
78791   template<typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const78792   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
78793   {
78794     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
78795   }
78796 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78797   template<typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const78798   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
78799   {
78800     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
78801     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
78802     return peerMemoryFeatures;
78803   }
78804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78805 
78806   template<typename Dispatch>
getGroupPresentCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,Dispatch const & d) const78807   VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78808   {
78809     return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( pDeviceGroupPresentCapabilities ) ) );
78810   }
78811 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78812   template<typename Dispatch>
getGroupPresentCapabilitiesKHR(Dispatch const & d) const78813   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type Device::getGroupPresentCapabilitiesKHR(Dispatch const &d ) const
78814   {
78815     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
78816     Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( &deviceGroupPresentCapabilities ) ) );
78817     return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupPresentCapabilitiesKHR" );
78818   }
78819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78820 
78821 #ifdef VK_USE_PLATFORM_WIN32_KHR
78822   template<typename Dispatch>
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const78823   VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78824   {
78825     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
78826   }
78827 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78828   template<typename Dispatch>
getGroupSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const78829   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
78830   {
78831     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
78832     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
78833     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModes2EXT" );
78834   }
78835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78836 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78837 
78838   template<typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const78839   VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78840   {
78841     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
78842   }
78843 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78844   template<typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const78845   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
78846   {
78847     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
78848     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
78849     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModesKHR" );
78850   }
78851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78852 
78853   template<typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,Dispatch const & d) const78854   VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78855   {
78856     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( pCommittedMemoryInBytes ) );
78857   }
78858 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78859   template<typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const78860   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78861   {
78862     VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
78863     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( &committedMemoryInBytes ) );
78864     return committedMemoryInBytes;
78865   }
78866 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78867 
78868   template<typename Dispatch>
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const78869   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78870   {
78871     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( pInfo ) );
78872   }
78873 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78874   template<typename Dispatch>
getMemoryOpaqueCaptureAddress(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const78875   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78876   {
78877     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( &info ) );
78878   }
78879 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78880 
78881   template<typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const78882   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78883   {
78884     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( pInfo ) );
78885   }
78886 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78887   template<typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const78888   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78889   {
78890     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( &info ) );
78891   }
78892 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78893 
78894   template<typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const78895   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78896   {
78897     return d.vkGetDeviceProcAddr( m_device, pName );
78898   }
78899 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78900   template<typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const78901   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78902   {
78903     return d.vkGetDeviceProcAddr( m_device, name.c_str() );
78904   }
78905 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78906 
78907   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const78908   VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78909   {
78910     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( pQueue ) );
78911   }
78912 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78913   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,Dispatch const & d) const78914   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78915   {
78916     VULKAN_HPP_NAMESPACE::Queue queue;
78917     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( &queue ) );
78918     return queue;
78919   }
78920 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78921 
78922   template<typename Dispatch>
getQueue2(const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const78923   VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78924   {
78925     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( pQueueInfo ), reinterpret_cast<VkQueue*>( pQueue ) );
78926   }
78927 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78928   template<typename Dispatch>
getQueue2(const DeviceQueueInfo2 & queueInfo,Dispatch const & d) const78929   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
78930   {
78931     VULKAN_HPP_NAMESPACE::Queue queue;
78932     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( &queueInfo ), reinterpret_cast<VkQueue*>( &queue ) );
78933     return queue;
78934   }
78935 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78936 
78937 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
78938   template<typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const78939   VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78940   {
78941     return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
78942   }
78943 #else
78944   template<typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const78945   VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d ) const
78946   {
78947     Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
78948     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getEventStatus", { Result::eEventSet, Result::eEventReset } );
78949   }
78950 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78951 
78952   template<typename Dispatch>
getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const78953   VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78954   {
78955     return static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
78956   }
78957 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78958   template<typename Dispatch>
getFenceFdKHR(const FenceGetFdInfoKHR & getFdInfo,Dispatch const & d) const78959   VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
78960   {
78961     int fd;
78962     Result result = static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( &getFdInfo ), &fd ) );
78963     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceFdKHR" );
78964   }
78965 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78966 
78967 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
78968   template<typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const78969   VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78970   {
78971     return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
78972   }
78973 #else
78974   template<typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const78975   VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const
78976   {
78977     Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
78978     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceStatus", { Result::eSuccess, Result::eNotReady } );
78979   }
78980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78981 
78982 #ifdef VK_USE_PLATFORM_WIN32_KHR
78983   template<typename Dispatch>
getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const78984   VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
78985   {
78986     return static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
78987   }
78988 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
78989   template<typename Dispatch>
getFenceWin32HandleKHR(const FenceGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const78990   VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
78991   {
78992     HANDLE handle;
78993     Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
78994     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceWin32HandleKHR" );
78995   }
78996 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
78997 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78998 
78999   template<typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const79000   VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79001   {
79002     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
79003   }
79004 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79005   template<typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const79006   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79007   {
79008     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
79009     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
79010     return memoryRequirements;
79011   }
79012   template<typename X, typename Y, typename ...Z, typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const79013   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79014   {
79015     StructureChain<X, Y, Z...> structureChain;
79016     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
79017     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
79018     return structureChain;
79019   }
79020 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79021 
79022   template<typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties,Dispatch const & d) const79023   VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79024   {
79025     return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( pProperties ) ) );
79026   }
79027 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79028   template<typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const79029   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const
79030   {
79031     VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
79032     Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( &properties ) ) );
79033     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getImageDrmFormatModifierPropertiesEXT" );
79034   }
79035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79036 
79037   template<typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const79038   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79039   {
79040     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
79041   }
79042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79043   template<typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const79044   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79045   {
79046     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
79047     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
79048     return memoryRequirements;
79049   }
79050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79051 
79052   template<typename Dispatch>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const79053   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79054   {
79055     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
79056   }
79057 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79058   template<typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const79059   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79060   {
79061     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
79062     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
79063     return memoryRequirements;
79064   }
79065   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const79066   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79067   {
79068     StructureChain<X, Y, Z...> structureChain;
79069     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
79070     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
79071     return structureChain;
79072   }
79073 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79074 
79075   template<typename Dispatch>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const79076   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79077   {
79078     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
79079   }
79080 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79081   template<typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const79082   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79083   {
79084     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
79085     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
79086     return memoryRequirements;
79087   }
79088   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const79089   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79090   {
79091     StructureChain<X, Y, Z...> structureChain;
79092     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
79093     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
79094     return structureChain;
79095   }
79096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79097 
79098   template<typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,Dispatch const & d) const79099   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
79100   {
79101     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( pSparseMemoryRequirements ) );
79102   }
79103 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79104   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const79105   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements,Allocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const
79106   {
79107     std::vector<SparseImageMemoryRequirements,Allocator> sparseMemoryRequirements;
79108     uint32_t sparseMemoryRequirementCount;
79109     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
79110     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
79111     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( sparseMemoryRequirements.data() ) );
79112     return sparseMemoryRequirements;
79113   }
79114   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Allocator const & vectorAllocator,Dispatch const & d) const79115   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements,Allocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Allocator const& vectorAllocator, Dispatch const &d ) const
79116   {
79117     std::vector<SparseImageMemoryRequirements,Allocator> sparseMemoryRequirements( vectorAllocator );
79118     uint32_t sparseMemoryRequirementCount;
79119     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
79120     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
79121     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( sparseMemoryRequirements.data() ) );
79122     return sparseMemoryRequirements;
79123   }
79124 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79125 
79126   template<typename Dispatch>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const79127   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
79128   {
79129     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( pSparseMemoryRequirements ) );
79130   }
79131 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79132   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const79133   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const
79134   {
79135     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements;
79136     uint32_t sparseMemoryRequirementCount;
79137     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
79138     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
79139     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
79140     return sparseMemoryRequirements;
79141   }
79142   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Allocator const & vectorAllocator,Dispatch const & d) const79143   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const
79144   {
79145     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements( vectorAllocator );
79146     uint32_t sparseMemoryRequirementCount;
79147     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
79148     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
79149     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
79150     return sparseMemoryRequirements;
79151   }
79152 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79153 
79154   template<typename Dispatch>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const79155   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
79156   {
79157     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( pSparseMemoryRequirements ) );
79158   }
79159 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79160   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const79161   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const
79162   {
79163     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements;
79164     uint32_t sparseMemoryRequirementCount;
79165     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
79166     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
79167     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
79168     return sparseMemoryRequirements;
79169   }
79170   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Allocator const & vectorAllocator,Dispatch const & d) const79171   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const
79172   {
79173     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements( vectorAllocator );
79174     uint32_t sparseMemoryRequirementCount;
79175     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
79176     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
79177     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
79178     return sparseMemoryRequirements;
79179   }
79180 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79181 
79182   template<typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout,Dispatch const & d) const79183   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
79184   {
79185     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( pSubresource ), reinterpret_cast<VkSubresourceLayout*>( pLayout ) );
79186   }
79187 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79188   template<typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const ImageSubresource & subresource,Dispatch const & d) const79189   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79190   {
79191     VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
79192     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( &subresource ), reinterpret_cast<VkSubresourceLayout*>( &layout ) );
79193     return layout;
79194   }
79195 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79196 
79197   template<typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,Dispatch const & d) const79198   VULKAN_HPP_INLINE Result Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79199   {
79200     return static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX*>( pProperties ) ) );
79201   }
79202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79203   template<typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,Dispatch const & d) const79204   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>::type Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const &d ) const
79205   {
79206     VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
79207     Result result = static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX*>( &properties ) ) );
79208     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getImageViewAddressNVX" );
79209   }
79210 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79211 
79212   template<typename Dispatch>
getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const79213   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79214   {
79215     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( pInfo ) );
79216   }
79217 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79218   template<typename Dispatch>
getImageViewHandleNVX(const ImageViewHandleInfoNVX & info,Dispatch const & d) const79219   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79220   {
79221     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( &info ) );
79222   }
79223 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79224 
79225 #ifdef VK_USE_PLATFORM_ANDROID_KHR
79226   template<typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,Dispatch const & d) const79227   VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79228   {
79229     return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( pInfo ), pBuffer ) );
79230   }
79231 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79232   template<typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const MemoryGetAndroidHardwareBufferInfoANDROID & info,Dispatch const & d) const79233   VULKAN_HPP_INLINE typename ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d ) const
79234   {
79235     struct AHardwareBuffer* buffer;
79236     Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( &info ), &buffer ) );
79237     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryAndroidHardwareBufferANDROID" );
79238   }
79239 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79240 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
79241 
79242   template<typename Dispatch>
getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const79243   VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79244   {
79245     return static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
79246   }
79247 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79248   template<typename Dispatch>
getMemoryFdKHR(const MemoryGetFdInfoKHR & getFdInfo,Dispatch const & d) const79249   VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
79250   {
79251     int fd;
79252     Result result = static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( &getFdInfo ), &fd ) );
79253     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdKHR" );
79254   }
79255 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79256 
79257   template<typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties,Dispatch const & d) const79258   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
79259   {
79260     return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( pMemoryFdProperties ) ) );
79261   }
79262 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79263   template<typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,Dispatch const & d) const79264   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR>::type Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d ) const
79265   {
79266     VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
79267     Result result = static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( &memoryFdProperties ) ) );
79268     return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdPropertiesKHR" );
79269   }
79270 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79271 
79272   template<typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,Dispatch const & d) const79273   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
79274   {
79275     return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( pMemoryHostPointerProperties ) ) );
79276   }
79277 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79278   template<typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,Dispatch const & d) const79279   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>::type Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d ) const
79280   {
79281     VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
79282     Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( &memoryHostPointerProperties ) ) );
79283     return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryHostPointerPropertiesEXT" );
79284   }
79285 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79286 
79287 #ifdef VK_USE_PLATFORM_WIN32_KHR
79288   template<typename Dispatch>
getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const79289   VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79290   {
79291     return static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
79292   }
79293 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79294   template<typename Dispatch>
getMemoryWin32HandleKHR(const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const79295   VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
79296   {
79297     HANDLE handle;
79298     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
79299     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleKHR" );
79300   }
79301 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79302 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79303 
79304 #ifdef VK_USE_PLATFORM_WIN32_KHR
79305   template<typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,Dispatch const & d) const79306   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
79307   {
79308     return static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
79309   }
79310 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79311   template<typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,Dispatch const & d) const79312   VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d ) const
79313   {
79314     HANDLE handle;
79315     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
79316     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleNV" );
79317   }
79318 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79319 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79320 
79321 #ifdef VK_USE_PLATFORM_WIN32_KHR
79322   template<typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,Dispatch const & d) const79323   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
79324   {
79325     return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( pMemoryWin32HandleProperties ) ) );
79326   }
79327 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79328   template<typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,Dispatch const & d) const79329   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>::type Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d ) const
79330   {
79331     VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
79332     Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( &memoryWin32HandleProperties ) ) );
79333     return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandlePropertiesKHR" );
79334   }
79335 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79336 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79337 
79338   template<typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,Dispatch const & d) const79339   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
79340   {
79341     return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), pPresentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( pPresentationTimings ) ) );
79342   }
79343 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79344   template<typename Allocator, typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const79345   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
79346   {
79347     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings;
79348     uint32_t presentationTimingCount;
79349     Result result;
79350     do
79351     {
79352       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
79353       if ( ( result == Result::eSuccess ) && presentationTimingCount )
79354       {
79355         presentationTimings.resize( presentationTimingCount );
79356         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
79357       }
79358     } while ( result == Result::eIncomplete );
79359     if ( result == Result::eSuccess )
79360     {
79361       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
79362       presentationTimings.resize( presentationTimingCount );
79363     }
79364     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
79365   }
79366   template<typename Allocator, typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Allocator const & vectorAllocator,Dispatch const & d) const79367   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
79368   {
79369     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings( vectorAllocator );
79370     uint32_t presentationTimingCount;
79371     Result result;
79372     do
79373     {
79374       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
79375       if ( ( result == Result::eSuccess ) && presentationTimingCount )
79376       {
79377         presentationTimings.resize( presentationTimingCount );
79378         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
79379       }
79380     } while ( result == Result::eIncomplete );
79381     if ( result == Result::eSuccess )
79382     {
79383       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
79384       presentationTimings.resize( presentationTimingCount );
79385     }
79386     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
79387   }
79388 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79389 
79390   template<typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue,Dispatch const & d) const79391   VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79392   {
79393     return static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( pValue ) ) );
79394   }
79395 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79396   template<typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,Dispatch const & d) const79397   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL>::type Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const &d ) const
79398   {
79399     VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
79400     Result result = static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( &value ) ) );
79401     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getPerformanceParameterINTEL" );
79402   }
79403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79404 
79405   template<typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,size_t * pDataSize,void * pData,Dispatch const & d) const79406   VULKAN_HPP_INLINE Result Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79407   {
79408     return static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
79409   }
79410 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79411   template<typename Allocator, typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Dispatch const & d) const79412   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d ) const
79413   {
79414     std::vector<uint8_t,Allocator> data;
79415     size_t dataSize;
79416     Result result;
79417     do
79418     {
79419       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
79420       if ( ( result == Result::eSuccess ) && dataSize )
79421       {
79422         data.resize( dataSize );
79423         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
79424       }
79425     } while ( result == Result::eIncomplete );
79426     if ( result == Result::eSuccess )
79427     {
79428       VULKAN_HPP_ASSERT( dataSize <= data.size() );
79429       data.resize( dataSize );
79430     }
79431     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
79432   }
79433   template<typename Allocator, typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Allocator const & vectorAllocator,Dispatch const & d) const79434   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
79435   {
79436     std::vector<uint8_t,Allocator> data( vectorAllocator );
79437     size_t dataSize;
79438     Result result;
79439     do
79440     {
79441       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
79442       if ( ( result == Result::eSuccess ) && dataSize )
79443       {
79444         data.resize( dataSize );
79445         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
79446       }
79447     } while ( result == Result::eIncomplete );
79448     if ( result == Result::eSuccess )
79449     {
79450       VULKAN_HPP_ASSERT( dataSize <= data.size() );
79451       data.resize( dataSize );
79452     }
79453     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
79454   }
79455 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79456 
79457   template<typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,Dispatch const & d) const79458   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
79459   {
79460     return static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( pInternalRepresentations ) ) );
79461   }
79462 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79463   template<typename Allocator, typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const79464   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
79465   {
79466     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations;
79467     uint32_t internalRepresentationCount;
79468     Result result;
79469     do
79470     {
79471       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
79472       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
79473       {
79474         internalRepresentations.resize( internalRepresentationCount );
79475         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
79476       }
79477     } while ( result == Result::eIncomplete );
79478     if ( result == Result::eSuccess )
79479     {
79480       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
79481       internalRepresentations.resize( internalRepresentationCount );
79482     }
79483     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
79484   }
79485   template<typename Allocator, typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const79486   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
79487   {
79488     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations( vectorAllocator );
79489     uint32_t internalRepresentationCount;
79490     Result result;
79491     do
79492     {
79493       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
79494       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
79495       {
79496         internalRepresentations.resize( internalRepresentationCount );
79497         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
79498       }
79499     } while ( result == Result::eIncomplete );
79500     if ( result == Result::eSuccess )
79501     {
79502       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
79503       internalRepresentations.resize( internalRepresentationCount );
79504     }
79505     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
79506   }
79507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79508 
79509   template<typename Dispatch>
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,Dispatch const & d) const79510   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
79511   {
79512     return static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( pPipelineInfo ), pExecutableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( pProperties ) ) );
79513   }
79514 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79515   template<typename Allocator, typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Dispatch const & d) const79516   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d ) const
79517   {
79518     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties;
79519     uint32_t executableCount;
79520     Result result;
79521     do
79522     {
79523       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
79524       if ( ( result == Result::eSuccess ) && executableCount )
79525       {
79526         properties.resize( executableCount );
79527         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
79528       }
79529     } while ( result == Result::eIncomplete );
79530     if ( result == Result::eSuccess )
79531     {
79532       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
79533       properties.resize( executableCount );
79534     }
79535     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
79536   }
79537   template<typename Allocator, typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Allocator const & vectorAllocator,Dispatch const & d) const79538   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
79539   {
79540     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties( vectorAllocator );
79541     uint32_t executableCount;
79542     Result result;
79543     do
79544     {
79545       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
79546       if ( ( result == Result::eSuccess ) && executableCount )
79547       {
79548         properties.resize( executableCount );
79549         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
79550       }
79551     } while ( result == Result::eIncomplete );
79552     if ( result == Result::eSuccess )
79553     {
79554       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
79555       properties.resize( executableCount );
79556     }
79557     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
79558   }
79559 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79560 
79561   template<typename Dispatch>
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics,Dispatch const & d) const79562   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
79563   {
79564     return static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pStatisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( pStatistics ) ) );
79565   }
79566 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79567   template<typename Allocator, typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const79568   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
79569   {
79570     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics;
79571     uint32_t statisticCount;
79572     Result result;
79573     do
79574     {
79575       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
79576       if ( ( result == Result::eSuccess ) && statisticCount )
79577       {
79578         statistics.resize( statisticCount );
79579         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
79580       }
79581     } while ( result == Result::eIncomplete );
79582     if ( result == Result::eSuccess )
79583     {
79584       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
79585       statistics.resize( statisticCount );
79586     }
79587     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
79588   }
79589   template<typename Allocator, typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const79590   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
79591   {
79592     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics( vectorAllocator );
79593     uint32_t statisticCount;
79594     Result result;
79595     do
79596     {
79597       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
79598       if ( ( result == Result::eSuccess ) && statisticCount )
79599       {
79600         statistics.resize( statisticCount );
79601         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
79602       }
79603     } while ( result == Result::eIncomplete );
79604     if ( result == Result::eSuccess )
79605     {
79606       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
79607       statistics.resize( statisticCount );
79608     }
79609     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
79610   }
79611 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79612 
79613   template<typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t * pData,Dispatch const & d) const79614   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
79615   {
79616     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), pData );
79617   }
79618 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79619   template<typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Dispatch const & d) const79620   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
79621   {
79622     uint64_t data;
79623     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), &data );
79624     return data;
79625   }
79626 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79627 
79628   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) const79629   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
79630   {
79631     return static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
79632   }
79633 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79634   template<typename T, typename Dispatch>
getQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,ArrayProxy<T> data,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const79635   VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d ) const
79636   {
79637     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 ) ) );
79638     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
79639   }
79640 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79641 
79642 #ifdef VK_ENABLE_BETA_EXTENSIONS
79643   template<typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const79644   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
79645   {
79646     return static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
79647   }
79648 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79649   template<typename T, typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,ArrayProxy<T> data,Dispatch const & d) const79650   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d ) const
79651   {
79652     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
79653     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
79654   }
79655 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79656 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
79657 
79658   template<typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const79659   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
79660   {
79661     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
79662   }
79663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79664   template<typename T, typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,ArrayProxy<T> data,Dispatch const & d) const79665   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d ) const
79666   {
79667     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
79668     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesKHR" );
79669   }
79670 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79671 
79672   template<typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const79673   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
79674   {
79675     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
79676   }
79677 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79678   template<typename T, typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,ArrayProxy<T> data,Dispatch const & d) const79679   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d ) const
79680   {
79681     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
79682     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" );
79683   }
79684 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79685 
79686   template<typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,Dispatch const & d) const79687   VULKAN_HPP_INLINE Result Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79688   {
79689     return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( pDisplayTimingProperties ) ) );
79690   }
79691 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79692   template<typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const79693   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>::type Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
79694   {
79695     VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
79696     Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( &displayTimingProperties ) ) );
79697     return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getRefreshCycleDurationGOOGLE" );
79698   }
79699 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79700 
79701   template<typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const79702   VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79703   {
79704     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( pGranularity ) );
79705   }
79706 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79707   template<typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Dispatch const & d) const79708   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
79709   {
79710     VULKAN_HPP_NAMESPACE::Extent2D granularity;
79711     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( &granularity ) );
79712     return granularity;
79713   }
79714 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79715 
79716   template<typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const79717   VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79718   {
79719     return static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
79720   }
79721 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79722   template<typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const79723   VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d ) const
79724   {
79725     uint64_t value;
79726     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
79727     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreCounterValue" );
79728   }
79729 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79730 
79731   template<typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const79732   VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79733   {
79734     return static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
79735   }
79736 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79737   template<typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const79738   VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d ) const
79739   {
79740     uint64_t value;
79741     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
79742     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreCounterValueKHR" );
79743   }
79744 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79745 
79746   template<typename Dispatch>
getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const79747   VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79748   {
79749     return static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
79750   }
79751 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79752   template<typename Dispatch>
getSemaphoreFdKHR(const SemaphoreGetFdInfoKHR & getFdInfo,Dispatch const & d) const79753   VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
79754   {
79755     int fd;
79756     Result result = static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( &getFdInfo ), &fd ) );
79757     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreFdKHR" );
79758   }
79759 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79760 
79761 #ifdef VK_USE_PLATFORM_WIN32_KHR
79762   template<typename Dispatch>
getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const79763   VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79764   {
79765     return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
79766   }
79767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79768   template<typename Dispatch>
getSemaphoreWin32HandleKHR(const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const79769   VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
79770   {
79771     HANDLE handle;
79772     Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
79773     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreWin32HandleKHR" );
79774   }
79775 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79776 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79777 
79778   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) const79779   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
79780   {
79781     return static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), pInfoSize, pInfo ) );
79782   }
79783 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79784   template<typename Allocator, typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Dispatch const & d) const79785   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
79786   {
79787     std::vector<uint8_t,Allocator> info;
79788     size_t infoSize;
79789     Result result;
79790     do
79791     {
79792       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
79793       if ( ( result == Result::eSuccess ) && infoSize )
79794       {
79795         info.resize( infoSize );
79796         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() ) ) );
79797       }
79798     } while ( result == Result::eIncomplete );
79799     if ( result == Result::eSuccess )
79800     {
79801       VULKAN_HPP_ASSERT( infoSize <= info.size() );
79802       info.resize( infoSize );
79803     }
79804     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
79805   }
79806   template<typename Allocator, typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Allocator const & vectorAllocator,Dispatch const & d) const79807   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
79808   {
79809     std::vector<uint8_t,Allocator> info( vectorAllocator );
79810     size_t infoSize;
79811     Result result;
79812     do
79813     {
79814       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
79815       if ( ( result == Result::eSuccess ) && infoSize )
79816       {
79817         info.resize( infoSize );
79818         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() ) ) );
79819       }
79820     } while ( result == Result::eIncomplete );
79821     if ( result == Result::eSuccess )
79822     {
79823       VULKAN_HPP_ASSERT( infoSize <= info.size() );
79824       info.resize( infoSize );
79825     }
79826     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
79827   }
79828 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79829 
79830   template<typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,Dispatch const & d) const79831   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
79832   {
79833     return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
79834   }
79835 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79836   template<typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,Dispatch const & d) const79837   VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const &d ) const
79838   {
79839     uint64_t counterValue;
79840     Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
79841     return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainCounterEXT" );
79842   }
79843 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79844 
79845   template<typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VULKAN_HPP_NAMESPACE::Image * pSwapchainImages,Dispatch const & d) const79846   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
79847   {
79848     return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast<VkImage*>( pSwapchainImages ) ) );
79849   }
79850 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79851   template<typename Allocator, typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const79852   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
79853   {
79854     std::vector<Image,Allocator> swapchainImages;
79855     uint32_t swapchainImageCount;
79856     Result result;
79857     do
79858     {
79859       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
79860       if ( ( result == Result::eSuccess ) && swapchainImageCount )
79861       {
79862         swapchainImages.resize( swapchainImageCount );
79863         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
79864       }
79865     } while ( result == Result::eIncomplete );
79866     if ( result == Result::eSuccess )
79867     {
79868       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
79869       swapchainImages.resize( swapchainImageCount );
79870     }
79871     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
79872   }
79873   template<typename Allocator, typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Allocator const & vectorAllocator,Dispatch const & d) const79874   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
79875   {
79876     std::vector<Image,Allocator> swapchainImages( vectorAllocator );
79877     uint32_t swapchainImageCount;
79878     Result result;
79879     do
79880     {
79881       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
79882       if ( ( result == Result::eSuccess ) && swapchainImageCount )
79883       {
79884         swapchainImages.resize( swapchainImageCount );
79885         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
79886       }
79887     } while ( result == Result::eIncomplete );
79888     if ( result == Result::eSuccess )
79889     {
79890       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
79891       swapchainImages.resize( swapchainImageCount );
79892     }
79893     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
79894   }
79895 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79896 
79897 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
79898   template<typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const79899   VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79900   {
79901     return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
79902   }
79903 #else
79904   template<typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const79905   VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
79906   {
79907     Result result = static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
79908     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainStatusKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
79909   }
79910 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79911 
79912   template<typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,size_t * pDataSize,void * pData,Dispatch const & d) const79913   VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79914   {
79915     return static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
79916   }
79917 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79918   template<typename Allocator, typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Dispatch const & d) const79919   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d ) const
79920   {
79921     std::vector<uint8_t,Allocator> data;
79922     size_t dataSize;
79923     Result result;
79924     do
79925     {
79926       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
79927       if ( ( result == Result::eSuccess ) && dataSize )
79928       {
79929         data.resize( dataSize );
79930         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
79931       }
79932     } while ( result == Result::eIncomplete );
79933     if ( result == Result::eSuccess )
79934     {
79935       VULKAN_HPP_ASSERT( dataSize <= data.size() );
79936       data.resize( dataSize );
79937     }
79938     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
79939   }
79940   template<typename Allocator, typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Allocator const & vectorAllocator,Dispatch const & d) const79941   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
79942   {
79943     std::vector<uint8_t,Allocator> data( vectorAllocator );
79944     size_t dataSize;
79945     Result result;
79946     do
79947     {
79948       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
79949       if ( ( result == Result::eSuccess ) && dataSize )
79950       {
79951         data.resize( dataSize );
79952         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
79953       }
79954     } while ( result == Result::eIncomplete );
79955     if ( result == Result::eSuccess )
79956     {
79957       VULKAN_HPP_ASSERT( dataSize <= data.size() );
79958       data.resize( dataSize );
79959     }
79960     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
79961   }
79962 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79963 
79964   template<typename Dispatch>
importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,Dispatch const & d) const79965   VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79966   {
79967     return static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR*>( pImportFenceFdInfo ) ) );
79968   }
79969 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79970   template<typename Dispatch>
importFenceFdKHR(const ImportFenceFdInfoKHR & importFenceFdInfo,Dispatch const & d) const79971   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d ) const
79972   {
79973     Result result = static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR*>( &importFenceFdInfo ) ) );
79974     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceFdKHR" );
79975   }
79976 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79977 
79978 #ifdef VK_USE_PLATFORM_WIN32_KHR
79979   template<typename Dispatch>
importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,Dispatch const & d) const79980   VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79981   {
79982     return static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( pImportFenceWin32HandleInfo ) ) );
79983   }
79984 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79985   template<typename Dispatch>
importFenceWin32HandleKHR(const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,Dispatch const & d) const79986   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d ) const
79987   {
79988     Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( &importFenceWin32HandleInfo ) ) );
79989     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceWin32HandleKHR" );
79990   }
79991 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79992 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79993 
79994   template<typename Dispatch>
importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,Dispatch const & d) const79995   VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
79996   {
79997     return static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( pImportSemaphoreFdInfo ) ) );
79998   }
79999 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80000   template<typename Dispatch>
importSemaphoreFdKHR(const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo,Dispatch const & d) const80001   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d ) const
80002   {
80003     Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( &importSemaphoreFdInfo ) ) );
80004     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreFdKHR" );
80005   }
80006 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80007 
80008 #ifdef VK_USE_PLATFORM_WIN32_KHR
80009   template<typename Dispatch>
importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,Dispatch const & d) const80010   VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80011   {
80012     return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( pImportSemaphoreWin32HandleInfo ) ) );
80013   }
80014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80015   template<typename Dispatch>
importSemaphoreWin32HandleKHR(const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,Dispatch const & d) const80016   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d ) const
80017   {
80018     Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( &importSemaphoreWin32HandleInfo ) ) );
80019     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreWin32HandleKHR" );
80020   }
80021 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80022 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80023 
80024   template<typename Dispatch>
initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo,Dispatch const & d) const80025   VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80026   {
80027     return static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( pInitializeInfo ) ) );
80028   }
80029 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80030   template<typename Dispatch>
initializePerformanceApiINTEL(const InitializePerformanceApiInfoINTEL & initializeInfo,Dispatch const & d) const80031   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d ) const
80032   {
80033     Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( &initializeInfo ) ) );
80034     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::initializePerformanceApiINTEL" );
80035   }
80036 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80037 
80038   template<typename Dispatch>
invalidateMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const80039   VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80040   {
80041     return static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange*>( pMemoryRanges ) ) );
80042   }
80043 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80044   template<typename Dispatch>
invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> memoryRanges,Dispatch const & d) const80045   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::invalidateMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> memoryRanges, Dispatch const &d ) const
80046   {
80047     Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast<const VkMappedMemoryRange*>( memoryRanges.data() ) ) );
80048     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::invalidateMappedMemoryRanges" );
80049   }
80050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80051 
80052   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) const80053   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
80054   {
80055     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 ) );
80056   }
80057 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80058   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) const80059   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
80060   {
80061     void* pData;
80062     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 ) );
80063     return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING"::Device::mapMemory" );
80064   }
80065 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80066 
80067   template<typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,Dispatch const & d) const80068   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
80069   {
80070     return static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache*>( pSrcCaches ) ) );
80071   }
80072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80073   template<typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> srcCaches,Dispatch const & d) const80074   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> srcCaches, Dispatch const &d ) const
80075   {
80076     Result result = static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size() , reinterpret_cast<const VkPipelineCache*>( srcCaches.data() ) ) );
80077     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergePipelineCaches" );
80078   }
80079 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80080 
80081   template<typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,Dispatch const & d) const80082   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
80083   {
80084     return static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCacheCount, reinterpret_cast<const VkValidationCacheEXT*>( pSrcCaches ) ) );
80085   }
80086 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80087   template<typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> srcCaches,Dispatch const & d) const80088   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> srcCaches, Dispatch const &d ) const
80089   {
80090     Result result = static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size() , reinterpret_cast<const VkValidationCacheEXT*>( srcCaches.data() ) ) );
80091     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergeValidationCachesEXT" );
80092   }
80093 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80094 
80095   template<typename Dispatch>
registerEventEXT(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const80096   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
80097   {
80098     return static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( pDeviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
80099   }
80100 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80101   template<typename Dispatch>
registerEventEXT(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80102   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80103   {
80104     VULKAN_HPP_NAMESPACE::Fence fence;
80105     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
80106     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXT" );
80107   }
80108 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80109   template<typename Dispatch>
registerEventEXTUnique(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80110   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80111   {
80112     VULKAN_HPP_NAMESPACE::Fence fence;
80113     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
80114 
80115     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
80116     return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXTUnique", deleter );
80117   }
80118 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80120 
80121   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) const80122   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
80123   {
80124     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 ) ) );
80125   }
80126 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80127   template<typename Dispatch>
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80128   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
80129   {
80130     VULKAN_HPP_NAMESPACE::Fence fence;
80131     Result result = static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT*>( &displayEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
80132     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXT" );
80133   }
80134 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80135   template<typename Dispatch>
registerDisplayEventEXTUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80136   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80137   {
80138     VULKAN_HPP_NAMESPACE::Fence fence;
80139     Result result = static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT*>( &displayEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
80140 
80141     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
80142     return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXTUnique", deleter );
80143   }
80144 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80146 
80147 #ifdef VK_USE_PLATFORM_WIN32_KHR
80148 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80149   template<typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const80150   VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80151   {
80152     return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
80153   }
80154 #else
80155   template<typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const80156   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
80157   {
80158     Result result = static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
80159     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releaseFullScreenExclusiveModeEXT" );
80160   }
80161 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80162 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80163 
80164 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80165   template<typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const80166   VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80167   {
80168     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
80169   }
80170 #else
80171   template<typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const80172   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d ) const
80173   {
80174     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
80175     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releasePerformanceConfigurationINTEL" );
80176   }
80177 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80178 
80179 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80180   template<typename Dispatch>
releaseProfilingLockKHR(Dispatch const & d) const80181   VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80182   {
80183     d.vkReleaseProfilingLockKHR( m_device );
80184   }
80185 #else
80186   template<typename Dispatch>
releaseProfilingLockKHR(Dispatch const & d) const80187   VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80188   {
80189     d.vkReleaseProfilingLockKHR( m_device );
80190   }
80191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80192 
80193 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80194   template<typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const80195   VULKAN_HPP_INLINE Result Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80196   {
80197     return static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
80198   }
80199 #else
80200   template<typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const80201   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d ) const
80202   {
80203     Result result = static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
80204     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetCommandPool" );
80205   }
80206 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80207 
80208 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80209   template<typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const80210   VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80211   {
80212     return static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
80213   }
80214 #else
80215   template<typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const80216   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const &d ) const
80217   {
80218     Result result = static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
80219     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetDescriptorPool" );
80220   }
80221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80222 
80223 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80224   template<typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const80225   VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80226   {
80227     return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
80228   }
80229 #else
80230   template<typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const80231   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d ) const
80232   {
80233     Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
80234     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetEvent" );
80235   }
80236 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80237 
80238   template<typename Dispatch>
resetFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,Dispatch const & d) const80239   VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80240   {
80241     return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence*>( pFences ) ) );
80242   }
80243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80244   template<typename Dispatch>
resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> fences,Dispatch const & d) const80245   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> fences, Dispatch const &d ) const
80246   {
80247     Result result = static_cast<Result>( d.vkResetFences( m_device, fences.size() , reinterpret_cast<const VkFence*>( fences.data() ) ) );
80248     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetFences" );
80249   }
80250 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80251 
80252 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80253   template<typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const80254   VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80255   {
80256     d.vkResetQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
80257   }
80258 #else
80259   template<typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const80260   VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80261   {
80262     d.vkResetQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
80263   }
80264 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80265 
80266 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80267   template<typename Dispatch>
resetQueryPoolEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const80268   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80269   {
80270     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
80271   }
80272 #else
80273   template<typename Dispatch>
resetQueryPoolEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const80274   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80275   {
80276     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
80277   }
80278 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80279 
80280   template<typename Dispatch>
setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,Dispatch const & d) const80281   VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80282   {
80283     return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( pNameInfo ) ) );
80284   }
80285 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80286   template<typename Dispatch>
setDebugUtilsObjectNameEXT(const DebugUtilsObjectNameInfoEXT & nameInfo,Dispatch const & d) const80287   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d ) const
80288   {
80289     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( &nameInfo ) ) );
80290     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectNameEXT" );
80291   }
80292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80293 
80294   template<typename Dispatch>
setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo,Dispatch const & d) const80295   VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80296   {
80297     return static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( pTagInfo ) ) );
80298   }
80299 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80300   template<typename Dispatch>
setDebugUtilsObjectTagEXT(const DebugUtilsObjectTagInfoEXT & tagInfo,Dispatch const & d) const80301   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d ) const
80302   {
80303     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( &tagInfo ) ) );
80304     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectTagEXT" );
80305   }
80306 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80307 
80308 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80309   template<typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const80310   VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80311   {
80312     return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
80313   }
80314 #else
80315   template<typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const80316   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d ) const
80317   {
80318     Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
80319     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setEvent" );
80320   }
80321 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80322 
80323   template<typename Dispatch>
setHdrMetadataEXT(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,Dispatch const & d) const80324   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
80325   {
80326     d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast<const VkSwapchainKHR*>( pSwapchains ), reinterpret_cast<const VkHdrMetadataEXT*>( pMetadata ) );
80327   }
80328 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80329   template<typename Dispatch>
setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains,ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> metadata,Dispatch const & d) const80330   VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains, ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> metadata, Dispatch const &d ) const
80331   {
80332 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80333     VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
80334 #else
80335     if ( swapchains.size() != metadata.size() )
80336     {
80337       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
80338     }
80339 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
80340     d.vkSetHdrMetadataEXT( m_device, swapchains.size() , reinterpret_cast<const VkSwapchainKHR*>( swapchains.data() ), reinterpret_cast<const VkHdrMetadataEXT*>( metadata.data() ) );
80341   }
80342 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80343 
80344 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80345   template<typename Dispatch>
setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,Dispatch const & d) const80346   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80347   {
80348     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
80349   }
80350 #else
80351   template<typename Dispatch>
setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,Dispatch const & d) const80352   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80353   {
80354     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
80355   }
80356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80357 
80358 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80359   template<typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const80360   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
80361   {
80362     return static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
80363   }
80364 #else
80365   template<typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const80366   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
80367   {
80368     Result result = static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
80369     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setPrivateDataEXT" );
80370   }
80371 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80372 
80373   template<typename Dispatch>
signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const80374   VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80375   {
80376     return static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo*>( pSignalInfo ) ) );
80377   }
80378 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80379   template<typename Dispatch>
signalSemaphore(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const80380   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const &d ) const
80381   {
80382     Result result = static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo*>( &signalInfo ) ) );
80383     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::signalSemaphore" );
80384   }
80385 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80386 
80387   template<typename Dispatch>
signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const80388   VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80389   {
80390     return static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo*>( pSignalInfo ) ) );
80391   }
80392 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80393   template<typename Dispatch>
signalSemaphoreKHR(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const80394   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const &d ) const
80395   {
80396     Result result = static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo*>( &signalInfo ) ) );
80397     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::signalSemaphoreKHR" );
80398   }
80399 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80400 
80401 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80402   template<typename Dispatch>
trimCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const80403   VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80404   {
80405     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
80406   }
80407 #else
80408   template<typename Dispatch>
trimCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const80409   VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80410   {
80411     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
80412   }
80413 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80414 
80415 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80416   template<typename Dispatch>
trimCommandPoolKHR(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const80417   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80418   {
80419     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
80420   }
80421 #else
80422   template<typename Dispatch>
trimCommandPoolKHR(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const80423   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80424   {
80425     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
80426   }
80427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80428 
80429 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80430   template<typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const80431   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80432   {
80433     d.vkUninitializePerformanceApiINTEL( m_device );
80434   }
80435 #else
80436   template<typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const80437   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80438   {
80439     d.vkUninitializePerformanceApiINTEL( m_device );
80440   }
80441 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80442 
80443 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80444   template<typename Dispatch>
unmapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const80445   VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80446   {
80447     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
80448   }
80449 #else
80450   template<typename Dispatch>
unmapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const80451   VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80452   {
80453     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
80454   }
80455 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80456 
80457 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80458   template<typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const80459   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
80460   {
80461     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
80462   }
80463 #else
80464   template<typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const80465   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
80466   {
80467     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
80468   }
80469 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80470 
80471 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
80472   template<typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const80473   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
80474   {
80475     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
80476   }
80477 #else
80478   template<typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const80479   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
80480   {
80481     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
80482   }
80483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80484 
80485   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) const80486   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
80487   {
80488     d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet*>( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast<const VkCopyDescriptorSet*>( pDescriptorCopies ) );
80489   }
80490 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80491   template<typename Dispatch>
updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> descriptorWrites,ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> descriptorCopies,Dispatch const & d) const80492   VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> descriptorWrites, ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> descriptorCopies, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80493   {
80494     d.vkUpdateDescriptorSets( m_device, descriptorWrites.size() , reinterpret_cast<const VkWriteDescriptorSet*>( descriptorWrites.data() ), descriptorCopies.size() , reinterpret_cast<const VkCopyDescriptorSet*>( descriptorCopies.data() ) );
80495   }
80496 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80497 
80498   template<typename Dispatch>
waitForFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const80499   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
80500   {
80501     return static_cast<Result>( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast<const VkFence*>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
80502   }
80503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80504   template<typename Dispatch>
waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const80505   VULKAN_HPP_INLINE Result Device::waitForFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const &d ) const
80506   {
80507     Result result = static_cast<Result>( d.vkWaitForFences( m_device, fences.size() , reinterpret_cast<const VkFence*>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
80508     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitForFences", { Result::eSuccess, Result::eTimeout } );
80509   }
80510 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80511 
80512   template<typename Dispatch>
waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const80513   VULKAN_HPP_INLINE Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80514   {
80515     return static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo*>( pWaitInfo ), timeout ) );
80516   }
80517 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80518   template<typename Dispatch>
waitSemaphores(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const80519   VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d ) const
80520   {
80521     Result result = static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo*>( &waitInfo ), timeout ) );
80522     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitSemaphores", { Result::eSuccess, Result::eTimeout } );
80523   }
80524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80525 
80526   template<typename Dispatch>
waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const80527   VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80528   {
80529     return static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo*>( pWaitInfo ), timeout ) );
80530   }
80531 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80532   template<typename Dispatch>
waitSemaphoresKHR(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const80533   VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d ) const
80534   {
80535     Result result = static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo*>( &waitInfo ), timeout ) );
80536     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitSemaphoresKHR", { Result::eSuccess, Result::eTimeout } );
80537   }
80538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80539 
80540 #ifdef VK_ENABLE_BETA_EXTENSIONS
80541   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) const80542   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
80543   {
80544     return static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR*>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), dataSize, pData, stride ) );
80545   }
80546 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80547   template<typename T, typename Dispatch>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,ArrayProxy<T> data,size_t stride,Dispatch const & d) const80548   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy<T> data, size_t stride, Dispatch const &d ) const
80549   {
80550     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 ) );
80551     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::writeAccelerationStructuresPropertiesKHR" );
80552   }
80553 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80554 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
80555 
80556 #ifdef VK_USE_PLATFORM_ANDROID_KHR
80557   template<typename Dispatch>
createAndroidSurfaceKHR(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80558   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
80559   {
80560     return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80561   }
80562 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80563   template<typename Dispatch>
createAndroidSurfaceKHR(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80564   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80565   {
80566     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80567     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80568     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHR" );
80569   }
80570 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80571   template<typename Dispatch>
createAndroidSurfaceKHRUnique(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80572   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80573   {
80574     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80575     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80576 
80577     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80578     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHRUnique", deleter );
80579   }
80580 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80581 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80582 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
80583 
80584   template<typename Dispatch>
createDebugReportCallbackEXT(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback,Dispatch const & d) const80585   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
80586   {
80587     return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugReportCallbackEXT*>( pCallback ) ) );
80588   }
80589 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80590   template<typename Dispatch>
createDebugReportCallbackEXT(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80591   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80592   {
80593     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
80594     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT*>( &callback ) ) );
80595     return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXT" );
80596   }
80597 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80598   template<typename Dispatch>
createDebugReportCallbackEXTUnique(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80599   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80600   {
80601     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
80602     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT*>( &callback ) ) );
80603 
80604     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80605     return createResultValue<DebugReportCallbackEXT,Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXTUnique", deleter );
80606   }
80607 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80608 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80609 
80610   template<typename Dispatch>
createDebugUtilsMessengerEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger,Dispatch const & d) const80611   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
80612   {
80613     return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( pMessenger ) ) );
80614   }
80615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80616   template<typename Dispatch>
createDebugUtilsMessengerEXT(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80617   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80618   {
80619     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
80620     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( &messenger ) ) );
80621     return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXT" );
80622   }
80623 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80624   template<typename Dispatch>
createDebugUtilsMessengerEXTUnique(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80625   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80626   {
80627     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
80628     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( &messenger ) ) );
80629 
80630     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80631     return createResultValue<DebugUtilsMessengerEXT,Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXTUnique", deleter );
80632   }
80633 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80634 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80635 
80636   template<typename Dispatch>
createDisplayPlaneSurfaceKHR(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80637   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
80638   {
80639     return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80640   }
80641 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80642   template<typename Dispatch>
createDisplayPlaneSurfaceKHR(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80643   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80644   {
80645     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80646     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80647     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHR" );
80648   }
80649 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80650   template<typename Dispatch>
createDisplayPlaneSurfaceKHRUnique(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80651   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80652   {
80653     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80654     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80655 
80656     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80657     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHRUnique", deleter );
80658   }
80659 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80660 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80661 
80662   template<typename Dispatch>
createHeadlessSurfaceEXT(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80663   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
80664   {
80665     return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80666   }
80667 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80668   template<typename Dispatch>
createHeadlessSurfaceEXT(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80669   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80670   {
80671     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80672     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80673     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXT" );
80674   }
80675 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80676   template<typename Dispatch>
createHeadlessSurfaceEXTUnique(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80677   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80678   {
80679     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80680     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80681 
80682     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80683     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXTUnique", deleter );
80684   }
80685 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80687 
80688 #ifdef VK_USE_PLATFORM_IOS_MVK
80689   template<typename Dispatch>
createIOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80690   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
80691   {
80692     return static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80693   }
80694 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80695   template<typename Dispatch>
createIOSSurfaceMVK(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80696   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80697   {
80698     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80699     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80700     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVK" );
80701   }
80702 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80703   template<typename Dispatch>
createIOSSurfaceMVKUnique(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80704   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80705   {
80706     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80707     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80708 
80709     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80710     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVKUnique", deleter );
80711   }
80712 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80713 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80714 #endif /*VK_USE_PLATFORM_IOS_MVK*/
80715 
80716 #ifdef VK_USE_PLATFORM_FUCHSIA
80717   template<typename Dispatch>
createImagePipeSurfaceFUCHSIA(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80718   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
80719   {
80720     return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80721   }
80722 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80723   template<typename Dispatch>
createImagePipeSurfaceFUCHSIA(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80724   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80725   {
80726     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80727     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80728     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIA" );
80729   }
80730 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80731   template<typename Dispatch>
createImagePipeSurfaceFUCHSIAUnique(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80732   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80733   {
80734     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80735     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80736 
80737     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80738     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter );
80739   }
80740 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80741 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80742 #endif /*VK_USE_PLATFORM_FUCHSIA*/
80743 
80744 #ifdef VK_USE_PLATFORM_MACOS_MVK
80745   template<typename Dispatch>
createMacOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80746   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
80747   {
80748     return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80749   }
80750 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80751   template<typename Dispatch>
createMacOSSurfaceMVK(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80752   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80753   {
80754     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80755     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80756     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVK" );
80757   }
80758 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80759   template<typename Dispatch>
createMacOSSurfaceMVKUnique(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80760   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80761   {
80762     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80763     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80764 
80765     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80766     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVKUnique", deleter );
80767   }
80768 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80769 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80770 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
80771 
80772 #ifdef VK_USE_PLATFORM_METAL_EXT
80773   template<typename Dispatch>
createMetalSurfaceEXT(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80774   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
80775   {
80776     return static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80777   }
80778 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80779   template<typename Dispatch>
createMetalSurfaceEXT(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80780   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80781   {
80782     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80783     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80784     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXT" );
80785   }
80786 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80787   template<typename Dispatch>
createMetalSurfaceEXTUnique(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80788   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80789   {
80790     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80791     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80792 
80793     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80794     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXTUnique", deleter );
80795   }
80796 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80797 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80798 #endif /*VK_USE_PLATFORM_METAL_EXT*/
80799 
80800 #ifdef VK_USE_PLATFORM_GGP
80801   template<typename Dispatch>
createStreamDescriptorSurfaceGGP(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80802   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
80803   {
80804     return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80805   }
80806 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80807   template<typename Dispatch>
createStreamDescriptorSurfaceGGP(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80808   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80809   {
80810     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80811     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80812     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGP" );
80813   }
80814 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80815   template<typename Dispatch>
createStreamDescriptorSurfaceGGPUnique(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80816   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80817   {
80818     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80819     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80820 
80821     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80822     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGPUnique", deleter );
80823   }
80824 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80825 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80826 #endif /*VK_USE_PLATFORM_GGP*/
80827 
80828 #ifdef VK_USE_PLATFORM_VI_NN
80829   template<typename Dispatch>
createViSurfaceNN(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80830   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
80831   {
80832     return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80833   }
80834 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80835   template<typename Dispatch>
createViSurfaceNN(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80836   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80837   {
80838     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80839     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80840     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNN" );
80841   }
80842 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80843   template<typename Dispatch>
createViSurfaceNNUnique(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80844   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80845   {
80846     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80847     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80848 
80849     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80850     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNNUnique", deleter );
80851   }
80852 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80853 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80854 #endif /*VK_USE_PLATFORM_VI_NN*/
80855 
80856 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
80857   template<typename Dispatch>
createWaylandSurfaceKHR(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80858   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
80859   {
80860     return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80861   }
80862 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80863   template<typename Dispatch>
createWaylandSurfaceKHR(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80864   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80865   {
80866     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80867     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80868     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHR" );
80869   }
80870 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80871   template<typename Dispatch>
createWaylandSurfaceKHRUnique(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80872   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80873   {
80874     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80875     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80876 
80877     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80878     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHRUnique", deleter );
80879   }
80880 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80881 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80882 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
80883 
80884 #ifdef VK_USE_PLATFORM_WIN32_KHR
80885   template<typename Dispatch>
createWin32SurfaceKHR(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80886   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
80887   {
80888     return static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80889   }
80890 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80891   template<typename Dispatch>
createWin32SurfaceKHR(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80892   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80893   {
80894     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80895     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80896     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHR" );
80897   }
80898 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80899   template<typename Dispatch>
createWin32SurfaceKHRUnique(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80900   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80901   {
80902     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80903     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80904 
80905     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80906     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHRUnique", deleter );
80907   }
80908 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80909 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80910 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80911 
80912 #ifdef VK_USE_PLATFORM_XCB_KHR
80913   template<typename Dispatch>
createXcbSurfaceKHR(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80914   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
80915   {
80916     return static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80917   }
80918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80919   template<typename Dispatch>
createXcbSurfaceKHR(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80920   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80921   {
80922     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80923     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80924     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHR" );
80925   }
80926 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80927   template<typename Dispatch>
createXcbSurfaceKHRUnique(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80928   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80929   {
80930     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80931     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80932 
80933     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80934     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHRUnique", deleter );
80935   }
80936 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80937 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80938 #endif /*VK_USE_PLATFORM_XCB_KHR*/
80939 
80940 #ifdef VK_USE_PLATFORM_XLIB_KHR
80941   template<typename Dispatch>
createXlibSurfaceKHR(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const80942   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
80943   {
80944     return static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
80945   }
80946 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80947   template<typename Dispatch>
createXlibSurfaceKHR(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80948   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80949   {
80950     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80951     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80952     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHR" );
80953   }
80954 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80955   template<typename Dispatch>
createXlibSurfaceKHRUnique(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80956   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
80957   {
80958     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
80959     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
80960 
80961     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
80962     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHRUnique", deleter );
80963   }
80964 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80965 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80966 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
80967 
80968   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) const80969   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
80970   {
80971     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
80972   }
80973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80974   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) const80975   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
80976   {
80977 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80978     VULKAN_HPP_ASSERT( layerPrefix.size() == message.size() );
80979 #else
80980     if ( layerPrefix.size() != message.size() )
80981     {
80982       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkInstance::debugReportMessageEXT: layerPrefix.size() != message.size()" );
80983     }
80984 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
80985     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
80986   }
80987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80988 
80989   template<typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const80990   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
80991   {
80992     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
80993   }
80994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80995   template<typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const80996   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
80997   {
80998     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
80999   }
81000 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81001 
81002   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const81003   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81004   {
81005     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
81006   }
81007 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81008   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81009   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81010   {
81011     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
81012   }
81013 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81014 
81015   template<typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const81016   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81017   {
81018     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
81019   }
81020 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81021   template<typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81022   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81023   {
81024     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
81025   }
81026 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81027 
81028   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const81029   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81030   {
81031     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
81032   }
81033 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81034   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81035   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81036   {
81037     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
81038   }
81039 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81040 
81041   template<typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const81042   VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81043   {
81044     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
81045   }
81046 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81047   template<typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81048   VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81049   {
81050     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
81051   }
81052 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81053 
81054   template<typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const81055   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81056   {
81057     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
81058   }
81059 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81060   template<typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81061   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81062   {
81063     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
81064   }
81065 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81066 
81067   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const81068   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81069   {
81070     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
81071   }
81072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81073   template<typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81074   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81075   {
81076     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
81077   }
81078 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81079 
81080   template<typename Dispatch>
enumeratePhysicalDeviceGroups(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const81081   VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81082   {
81083     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
81084   }
81085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81086   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroups(Dispatch const & d) const81087   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Dispatch const &d ) const
81088   {
81089     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
81090     uint32_t physicalDeviceGroupCount;
81091     Result result;
81092     do
81093     {
81094       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
81095       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
81096       {
81097         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81098         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
81099       }
81100     } while ( result == Result::eIncomplete );
81101     if ( result == Result::eSuccess )
81102     {
81103       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
81104       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81105     }
81106     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
81107   }
81108   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroups(Allocator const & vectorAllocator,Dispatch const & d) const81109   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const
81110   {
81111     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
81112     uint32_t physicalDeviceGroupCount;
81113     Result result;
81114     do
81115     {
81116       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
81117       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
81118       {
81119         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81120         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
81121       }
81122     } while ( result == Result::eIncomplete );
81123     if ( result == Result::eSuccess )
81124     {
81125       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
81126       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81127     }
81128     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
81129   }
81130 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81131 
81132   template<typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const81133   VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81134   {
81135     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
81136   }
81137 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81138   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Dispatch const & d) const81139   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Dispatch const &d ) const
81140   {
81141     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
81142     uint32_t physicalDeviceGroupCount;
81143     Result result;
81144     do
81145     {
81146       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
81147       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
81148       {
81149         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81150         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
81151       }
81152     } while ( result == Result::eIncomplete );
81153     if ( result == Result::eSuccess )
81154     {
81155       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
81156       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81157     }
81158     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
81159   }
81160   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Allocator const & vectorAllocator,Dispatch const & d) const81161   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
81162   {
81163     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
81164     uint32_t physicalDeviceGroupCount;
81165     Result result;
81166     do
81167     {
81168       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
81169       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
81170       {
81171         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81172         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
81173       }
81174     } while ( result == Result::eIncomplete );
81175     if ( result == Result::eSuccess )
81176     {
81177       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
81178       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
81179     }
81180     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
81181   }
81182 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81183 
81184   template<typename Dispatch>
enumeratePhysicalDevices(uint32_t * pPhysicalDeviceCount,VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,Dispatch const & d) const81185   VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81186   {
81187     return static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( pPhysicalDevices ) ) );
81188   }
81189 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81190   template<typename Allocator, typename Dispatch>
enumeratePhysicalDevices(Dispatch const & d) const81191   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Dispatch const &d ) const
81192   {
81193     std::vector<PhysicalDevice,Allocator> physicalDevices;
81194     uint32_t physicalDeviceCount;
81195     Result result;
81196     do
81197     {
81198       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
81199       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
81200       {
81201         physicalDevices.resize( physicalDeviceCount );
81202         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
81203       }
81204     } while ( result == Result::eIncomplete );
81205     if ( result == Result::eSuccess )
81206     {
81207       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
81208       physicalDevices.resize( physicalDeviceCount );
81209     }
81210     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
81211   }
81212   template<typename Allocator, typename Dispatch>
enumeratePhysicalDevices(Allocator const & vectorAllocator,Dispatch const & d) const81213   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const
81214   {
81215     std::vector<PhysicalDevice,Allocator> physicalDevices( vectorAllocator );
81216     uint32_t physicalDeviceCount;
81217     Result result;
81218     do
81219     {
81220       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
81221       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
81222       {
81223         physicalDevices.resize( physicalDeviceCount );
81224         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
81225       }
81226     } while ( result == Result::eIncomplete );
81227     if ( result == Result::eSuccess )
81228     {
81229       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
81230       physicalDevices.resize( physicalDeviceCount );
81231     }
81232     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
81233   }
81234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81235 
81236   template<typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const81237   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81238   {
81239     return d.vkGetInstanceProcAddr( m_instance, pName );
81240   }
81241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81242   template<typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const81243   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81244   {
81245     return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
81246   }
81247 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81248 
81249   template<typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,Dispatch const & d) const81250   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
81251   {
81252     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( pCallbackData ) );
81253   }
81254 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81255   template<typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const DebugUtilsMessengerCallbackDataEXT & callbackData,Dispatch const & d) const81256   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
81257   {
81258     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( &callbackData ) );
81259   }
81260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81261 
81262 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
81263   template<typename Dispatch>
acquireXlibDisplayEXT(Display * dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const81264   VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81265   {
81266     return static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
81267   }
81268 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81269   template<typename Dispatch>
acquireXlibDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const81270   VULKAN_HPP_INLINE typename ResultValueType<Display>::type PhysicalDevice::acquireXlibDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
81271   {
81272     Display dpy;
81273     Result result = static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
81274     return createResultValue( result, dpy, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::acquireXlibDisplayEXT" );
81275   }
81276 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81277 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
81278 
81279   template<typename Dispatch>
createDevice(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Device * pDevice,Dispatch const & d) const81280   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
81281   {
81282     return static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDevice*>( pDevice ) ) );
81283   }
81284 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81285   template<typename Dispatch>
createDevice(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81286   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Device>::type PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
81287   {
81288     VULKAN_HPP_NAMESPACE::Device device;
81289     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice*>( &device ) ) );
81290     return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDevice" );
81291   }
81292 #ifndef VULKAN_HPP_NO_SMART_HANDLE
81293   template<typename Dispatch>
createDeviceUnique(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81294   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Device,Dispatch>>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
81295   {
81296     VULKAN_HPP_NAMESPACE::Device device;
81297     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice*>( &device ) ) );
81298 
81299     ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
81300     return createResultValue<Device,Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDeviceUnique", deleter );
81301   }
81302 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81304 
81305   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) const81306   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
81307   {
81308     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 ) ) );
81309   }
81310 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81311   template<typename Dispatch>
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const81312   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
81313   {
81314     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
81315     Result result = static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDisplayModeKHR*>( &mode ) ) );
81316     return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDisplayModeKHR" );
81317   }
81318 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81319 
81320   template<typename Dispatch>
enumerateDeviceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d) const81321   VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81322   {
81323     return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
81324   }
81325 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81326   template<typename Allocator, typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d) const81327   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d ) const
81328   {
81329     std::vector<ExtensionProperties,Allocator> properties;
81330     uint32_t propertyCount;
81331     Result result;
81332     do
81333     {
81334       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
81335       if ( ( result == Result::eSuccess ) && propertyCount )
81336       {
81337         properties.resize( propertyCount );
81338         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
81339       }
81340     } while ( result == Result::eIncomplete );
81341     if ( result == Result::eSuccess )
81342     {
81343       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81344       properties.resize( propertyCount );
81345     }
81346     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
81347   }
81348   template<typename Allocator, typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Allocator const & vectorAllocator,Dispatch const & d) const81349   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const
81350   {
81351     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
81352     uint32_t propertyCount;
81353     Result result;
81354     do
81355     {
81356       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
81357       if ( ( result == Result::eSuccess ) && propertyCount )
81358       {
81359         properties.resize( propertyCount );
81360         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
81361       }
81362     } while ( result == Result::eIncomplete );
81363     if ( result == Result::eSuccess )
81364     {
81365       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81366       properties.resize( propertyCount );
81367     }
81368     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
81369   }
81370 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81371 
81372   template<typename Dispatch>
enumerateDeviceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d) const81373   VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81374   {
81375     return static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
81376   }
81377 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81378   template<typename Allocator, typename Dispatch>
enumerateDeviceLayerProperties(Dispatch const & d) const81379   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Dispatch const &d ) const
81380   {
81381     std::vector<LayerProperties,Allocator> properties;
81382     uint32_t propertyCount;
81383     Result result;
81384     do
81385     {
81386       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
81387       if ( ( result == Result::eSuccess ) && propertyCount )
81388       {
81389         properties.resize( propertyCount );
81390         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
81391       }
81392     } while ( result == Result::eIncomplete );
81393     if ( result == Result::eSuccess )
81394     {
81395       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81396       properties.resize( propertyCount );
81397     }
81398     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
81399   }
81400   template<typename Allocator, typename Dispatch>
enumerateDeviceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d) const81401   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
81402   {
81403     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
81404     uint32_t propertyCount;
81405     Result result;
81406     do
81407     {
81408       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
81409       if ( ( result == Result::eSuccess ) && propertyCount )
81410       {
81411         properties.resize( propertyCount );
81412         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
81413       }
81414     } while ( result == Result::eIncomplete );
81415     if ( result == Result::eSuccess )
81416     {
81417       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81418       properties.resize( propertyCount );
81419     }
81420     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
81421   }
81422 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81423 
81424   template<typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,uint32_t * pCounterCount,VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters,VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,Dispatch const & d) const81425   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
81426   {
81427     return static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast<VkPerformanceCounterKHR*>( pCounters ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( pCounterDescriptions ) ) );
81428   }
81429 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81430   template<typename Allocator, typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> counters,Dispatch const & d) const81431   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> counters, Dispatch const &d ) const
81432   {
81433     std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions;
81434     uint32_t counterCount;
81435     Result result;
81436     do
81437     {
81438       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
81439       if ( ( result == Result::eSuccess ) && counterCount )
81440       {
81441         counterDescriptions.resize( counterCount );
81442         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
81443       }
81444     } while ( result == Result::eIncomplete );
81445     if ( result == Result::eSuccess )
81446     {
81447       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
81448       counterDescriptions.resize( counterCount );
81449     }
81450     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
81451   }
81452   template<typename Allocator, typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> counters,Allocator const & vectorAllocator,Dispatch const & d) const81453   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> counters, Allocator const& vectorAllocator, Dispatch const &d ) const
81454   {
81455     std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions( vectorAllocator );
81456     uint32_t counterCount;
81457     Result result;
81458     do
81459     {
81460       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
81461       if ( ( result == Result::eSuccess ) && counterCount )
81462       {
81463         counterDescriptions.resize( counterCount );
81464         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
81465       }
81466     } while ( result == Result::eIncomplete );
81467     if ( result == Result::eSuccess )
81468     {
81469       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
81470       counterDescriptions.resize( counterCount );
81471     }
81472     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
81473   }
81474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81475 
81476   template<typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,Dispatch const & d) const81477   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
81478   {
81479     return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( pProperties ) ) );
81480   }
81481 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81482   template<typename Allocator, typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const81483   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
81484   {
81485     std::vector<DisplayModeProperties2KHR,Allocator> properties;
81486     uint32_t propertyCount;
81487     Result result;
81488     do
81489     {
81490       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
81491       if ( ( result == Result::eSuccess ) && propertyCount )
81492       {
81493         properties.resize( propertyCount );
81494         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
81495       }
81496     } while ( result == Result::eIncomplete );
81497     if ( result == Result::eSuccess )
81498     {
81499       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81500       properties.resize( propertyCount );
81501     }
81502     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
81503   }
81504   template<typename Allocator, typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Allocator const & vectorAllocator,Dispatch const & d) const81505   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
81506   {
81507     std::vector<DisplayModeProperties2KHR,Allocator> properties( vectorAllocator );
81508     uint32_t propertyCount;
81509     Result result;
81510     do
81511     {
81512       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
81513       if ( ( result == Result::eSuccess ) && propertyCount )
81514       {
81515         properties.resize( propertyCount );
81516         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
81517       }
81518     } while ( result == Result::eIncomplete );
81519     if ( result == Result::eSuccess )
81520     {
81521       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81522       properties.resize( propertyCount );
81523     }
81524     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
81525   }
81526 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81527 
81528   template<typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,Dispatch const & d) const81529   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
81530   {
81531     return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( pProperties ) ) );
81532   }
81533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81534   template<typename Allocator, typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const81535   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
81536   {
81537     std::vector<DisplayModePropertiesKHR,Allocator> properties;
81538     uint32_t propertyCount;
81539     Result result;
81540     do
81541     {
81542       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
81543       if ( ( result == Result::eSuccess ) && propertyCount )
81544       {
81545         properties.resize( propertyCount );
81546         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
81547       }
81548     } while ( result == Result::eIncomplete );
81549     if ( result == Result::eSuccess )
81550     {
81551       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81552       properties.resize( propertyCount );
81553     }
81554     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
81555   }
81556   template<typename Allocator, typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Allocator const & vectorAllocator,Dispatch const & d) const81557   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
81558   {
81559     std::vector<DisplayModePropertiesKHR,Allocator> properties( vectorAllocator );
81560     uint32_t propertyCount;
81561     Result result;
81562     do
81563     {
81564       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
81565       if ( ( result == Result::eSuccess ) && propertyCount )
81566       {
81567         properties.resize( propertyCount );
81568         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
81569       }
81570     } while ( result == Result::eIncomplete );
81571     if ( result == Result::eSuccess )
81572     {
81573       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81574       properties.resize( propertyCount );
81575     }
81576     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
81577   }
81578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81579 
81580   template<typename Dispatch>
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,Dispatch const & d) const81581   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81582   {
81583     return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( pDisplayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( pCapabilities ) ) );
81584   }
81585 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81586   template<typename Dispatch>
getDisplayPlaneCapabilities2KHR(const DisplayPlaneInfo2KHR & displayPlaneInfo,Dispatch const & d) const81587   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR>::type PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d ) const
81588   {
81589     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
81590     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( &displayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( &capabilities ) ) );
81591     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
81592   }
81593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81594 
81595   template<typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,Dispatch const & d) const81596   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
81597   {
81598     return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( pCapabilities ) ) );
81599   }
81600 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81601   template<typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,Dispatch const & d) const81602   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR>::type PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d ) const
81603   {
81604     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
81605     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( &capabilities ) ) );
81606     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
81607   }
81608 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81609 
81610   template<typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,uint32_t * pDisplayCount,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,Dispatch const & d) const81611   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81612   {
81613     return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast<VkDisplayKHR*>( pDisplays ) ) );
81614   }
81615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81616   template<typename Allocator, typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Dispatch const & d) const81617   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d ) const
81618   {
81619     std::vector<DisplayKHR,Allocator> displays;
81620     uint32_t displayCount;
81621     Result result;
81622     do
81623     {
81624       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
81625       if ( ( result == Result::eSuccess ) && displayCount )
81626       {
81627         displays.resize( displayCount );
81628         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
81629       }
81630     } while ( result == Result::eIncomplete );
81631     if ( result == Result::eSuccess )
81632     {
81633       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
81634       displays.resize( displayCount );
81635     }
81636     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
81637   }
81638   template<typename Allocator, typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Allocator const & vectorAllocator,Dispatch const & d) const81639   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const
81640   {
81641     std::vector<DisplayKHR,Allocator> displays( vectorAllocator );
81642     uint32_t displayCount;
81643     Result result;
81644     do
81645     {
81646       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
81647       if ( ( result == Result::eSuccess ) && displayCount )
81648       {
81649         displays.resize( displayCount );
81650         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
81651       }
81652     } while ( result == Result::eIncomplete );
81653     if ( result == Result::eSuccess )
81654     {
81655       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
81656       displays.resize( displayCount );
81657     }
81658     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
81659   }
81660 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81661 
81662   template<typename Dispatch>
getCalibrateableTimeDomainsEXT(uint32_t * pTimeDomainCount,VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,Dispatch const & d) const81663   VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81664   {
81665     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( pTimeDomains ) ) );
81666   }
81667 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81668   template<typename Allocator, typename Dispatch>
getCalibrateableTimeDomainsEXT(Dispatch const & d) const81669   VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Dispatch const &d ) const
81670   {
81671     std::vector<TimeDomainEXT,Allocator> timeDomains;
81672     uint32_t timeDomainCount;
81673     Result result;
81674     do
81675     {
81676       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
81677       if ( ( result == Result::eSuccess ) && timeDomainCount )
81678       {
81679         timeDomains.resize( timeDomainCount );
81680         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
81681       }
81682     } while ( result == Result::eIncomplete );
81683     if ( result == Result::eSuccess )
81684     {
81685       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
81686       timeDomains.resize( timeDomainCount );
81687     }
81688     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
81689   }
81690   template<typename Allocator, typename Dispatch>
getCalibrateableTimeDomainsEXT(Allocator const & vectorAllocator,Dispatch const & d) const81691   VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
81692   {
81693     std::vector<TimeDomainEXT,Allocator> timeDomains( vectorAllocator );
81694     uint32_t timeDomainCount;
81695     Result result;
81696     do
81697     {
81698       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
81699       if ( ( result == Result::eSuccess ) && timeDomainCount )
81700       {
81701         timeDomains.resize( timeDomainCount );
81702         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
81703       }
81704     } while ( result == Result::eIncomplete );
81705     if ( result == Result::eSuccess )
81706     {
81707       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
81708       timeDomains.resize( timeDomainCount );
81709     }
81710     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
81711   }
81712 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81713 
81714   template<typename Dispatch>
getCooperativeMatrixPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties,Dispatch const & d) const81715   VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81716   {
81717     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( pProperties ) ) );
81718   }
81719 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81720   template<typename Allocator, typename Dispatch>
getCooperativeMatrixPropertiesNV(Dispatch const & d) const81721   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Dispatch const &d ) const
81722   {
81723     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties;
81724     uint32_t propertyCount;
81725     Result result;
81726     do
81727     {
81728       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
81729       if ( ( result == Result::eSuccess ) && propertyCount )
81730       {
81731         properties.resize( propertyCount );
81732         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
81733       }
81734     } while ( result == Result::eIncomplete );
81735     if ( result == Result::eSuccess )
81736     {
81737       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81738       properties.resize( propertyCount );
81739     }
81740     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
81741   }
81742   template<typename Allocator, typename Dispatch>
getCooperativeMatrixPropertiesNV(Allocator const & vectorAllocator,Dispatch const & d) const81743   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const
81744   {
81745     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties( vectorAllocator );
81746     uint32_t propertyCount;
81747     Result result;
81748     do
81749     {
81750       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
81751       if ( ( result == Result::eSuccess ) && propertyCount )
81752       {
81753         properties.resize( propertyCount );
81754         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
81755       }
81756     } while ( result == Result::eIncomplete );
81757     if ( result == Result::eSuccess )
81758     {
81759       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81760       properties.resize( propertyCount );
81761     }
81762     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
81763   }
81764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81765 
81766   template<typename Dispatch>
getDisplayPlaneProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,Dispatch const & d) const81767   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81768   {
81769     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( pProperties ) ) );
81770   }
81771 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81772   template<typename Allocator, typename Dispatch>
getDisplayPlaneProperties2KHR(Dispatch const & d) const81773   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Dispatch const &d ) const
81774   {
81775     std::vector<DisplayPlaneProperties2KHR,Allocator> properties;
81776     uint32_t propertyCount;
81777     Result result;
81778     do
81779     {
81780       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
81781       if ( ( result == Result::eSuccess ) && propertyCount )
81782       {
81783         properties.resize( propertyCount );
81784         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
81785       }
81786     } while ( result == Result::eIncomplete );
81787     if ( result == Result::eSuccess )
81788     {
81789       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81790       properties.resize( propertyCount );
81791     }
81792     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
81793   }
81794   template<typename Allocator, typename Dispatch>
getDisplayPlaneProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const81795   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
81796   {
81797     std::vector<DisplayPlaneProperties2KHR,Allocator> properties( vectorAllocator );
81798     uint32_t propertyCount;
81799     Result result;
81800     do
81801     {
81802       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
81803       if ( ( result == Result::eSuccess ) && propertyCount )
81804       {
81805         properties.resize( propertyCount );
81806         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
81807       }
81808     } while ( result == Result::eIncomplete );
81809     if ( result == Result::eSuccess )
81810     {
81811       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81812       properties.resize( propertyCount );
81813     }
81814     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
81815   }
81816 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81817 
81818   template<typename Dispatch>
getDisplayPlanePropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,Dispatch const & d) const81819   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81820   {
81821     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( pProperties ) ) );
81822   }
81823 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81824   template<typename Allocator, typename Dispatch>
getDisplayPlanePropertiesKHR(Dispatch const & d) const81825   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Dispatch const &d ) const
81826   {
81827     std::vector<DisplayPlanePropertiesKHR,Allocator> properties;
81828     uint32_t propertyCount;
81829     Result result;
81830     do
81831     {
81832       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
81833       if ( ( result == Result::eSuccess ) && propertyCount )
81834       {
81835         properties.resize( propertyCount );
81836         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
81837       }
81838     } while ( result == Result::eIncomplete );
81839     if ( result == Result::eSuccess )
81840     {
81841       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81842       properties.resize( propertyCount );
81843     }
81844     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
81845   }
81846   template<typename Allocator, typename Dispatch>
getDisplayPlanePropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const81847   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
81848   {
81849     std::vector<DisplayPlanePropertiesKHR,Allocator> properties( vectorAllocator );
81850     uint32_t propertyCount;
81851     Result result;
81852     do
81853     {
81854       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
81855       if ( ( result == Result::eSuccess ) && propertyCount )
81856       {
81857         properties.resize( propertyCount );
81858         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
81859       }
81860     } while ( result == Result::eIncomplete );
81861     if ( result == Result::eSuccess )
81862     {
81863       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81864       properties.resize( propertyCount );
81865     }
81866     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
81867   }
81868 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81869 
81870   template<typename Dispatch>
getDisplayProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,Dispatch const & d) const81871   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81872   {
81873     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( pProperties ) ) );
81874   }
81875 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81876   template<typename Allocator, typename Dispatch>
getDisplayProperties2KHR(Dispatch const & d) const81877   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Dispatch const &d ) const
81878   {
81879     std::vector<DisplayProperties2KHR,Allocator> properties;
81880     uint32_t propertyCount;
81881     Result result;
81882     do
81883     {
81884       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
81885       if ( ( result == Result::eSuccess ) && propertyCount )
81886       {
81887         properties.resize( propertyCount );
81888         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
81889       }
81890     } while ( result == Result::eIncomplete );
81891     if ( result == Result::eSuccess )
81892     {
81893       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81894       properties.resize( propertyCount );
81895     }
81896     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
81897   }
81898   template<typename Allocator, typename Dispatch>
getDisplayProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const81899   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
81900   {
81901     std::vector<DisplayProperties2KHR,Allocator> properties( vectorAllocator );
81902     uint32_t propertyCount;
81903     Result result;
81904     do
81905     {
81906       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
81907       if ( ( result == Result::eSuccess ) && propertyCount )
81908       {
81909         properties.resize( propertyCount );
81910         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
81911       }
81912     } while ( result == Result::eIncomplete );
81913     if ( result == Result::eSuccess )
81914     {
81915       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81916       properties.resize( propertyCount );
81917     }
81918     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
81919   }
81920 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81921 
81922   template<typename Dispatch>
getDisplayPropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,Dispatch const & d) const81923   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81924   {
81925     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( pProperties ) ) );
81926   }
81927 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81928   template<typename Allocator, typename Dispatch>
getDisplayPropertiesKHR(Dispatch const & d) const81929   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Dispatch const &d ) const
81930   {
81931     std::vector<DisplayPropertiesKHR,Allocator> properties;
81932     uint32_t propertyCount;
81933     Result result;
81934     do
81935     {
81936       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
81937       if ( ( result == Result::eSuccess ) && propertyCount )
81938       {
81939         properties.resize( propertyCount );
81940         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
81941       }
81942     } while ( result == Result::eIncomplete );
81943     if ( result == Result::eSuccess )
81944     {
81945       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81946       properties.resize( propertyCount );
81947     }
81948     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
81949   }
81950   template<typename Allocator, typename Dispatch>
getDisplayPropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const81951   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
81952   {
81953     std::vector<DisplayPropertiesKHR,Allocator> properties( vectorAllocator );
81954     uint32_t propertyCount;
81955     Result result;
81956     do
81957     {
81958       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
81959       if ( ( result == Result::eSuccess ) && propertyCount )
81960       {
81961         properties.resize( propertyCount );
81962         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
81963       }
81964     } while ( result == Result::eIncomplete );
81965     if ( result == Result::eSuccess )
81966     {
81967       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81968       properties.resize( propertyCount );
81969     }
81970     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
81971   }
81972 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81973 
81974   template<typename Dispatch>
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const81975   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81976   {
81977     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
81978   }
81979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81980   template<typename Dispatch>
getExternalBufferProperties(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const81981   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81982   {
81983     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
81984     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
81985     return externalBufferProperties;
81986   }
81987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81988 
81989   template<typename Dispatch>
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const81990   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
81991   {
81992     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
81993   }
81994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81995   template<typename Dispatch>
getExternalBufferPropertiesKHR(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const81996   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
81997   {
81998     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
81999     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
82000     return externalBufferProperties;
82001   }
82002 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82003 
82004   template<typename Dispatch>
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const82005   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82006   {
82007     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
82008   }
82009 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82010   template<typename Dispatch>
getExternalFenceProperties(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const82011   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82012   {
82013     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
82014     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
82015     return externalFenceProperties;
82016   }
82017 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82018 
82019   template<typename Dispatch>
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const82020   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82021   {
82022     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
82023   }
82024 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82025   template<typename Dispatch>
getExternalFencePropertiesKHR(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const82026   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82027   {
82028     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
82029     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
82030     return externalFenceProperties;
82031   }
82032 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82033 
82034   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) const82035   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
82036   {
82037     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 ) ) );
82038   }
82039 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82040   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) const82041   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
82042   {
82043     VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
82044     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 ) ) );
82045     return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getExternalImageFormatPropertiesNV" );
82046   }
82047 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82048 
82049   template<typename Dispatch>
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const82050   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82051   {
82052     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
82053   }
82054 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82055   template<typename Dispatch>
getExternalSemaphoreProperties(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const82056   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82057   {
82058     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
82059     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
82060     return externalSemaphoreProperties;
82061   }
82062 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82063 
82064   template<typename Dispatch>
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const82065   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82066   {
82067     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
82068   }
82069 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82070   template<typename Dispatch>
getExternalSemaphorePropertiesKHR(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const82071   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82072   {
82073     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
82074     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
82075     return externalSemaphoreProperties;
82076   }
82077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82078 
82079   template<typename Dispatch>
getFeatures(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures,Dispatch const & d) const82080   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82081   {
82082     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( pFeatures ) );
82083   }
82084 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82085   template<typename Dispatch>
getFeatures(Dispatch const & d) const82086   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82087   {
82088     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
82089     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( &features ) );
82090     return features;
82091   }
82092 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82093 
82094   template<typename Dispatch>
getFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const82095   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82096   {
82097     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
82098   }
82099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82100   template<typename Dispatch>
getFeatures2(Dispatch const & d) const82101   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82102   {
82103     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
82104     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
82105     return features;
82106   }
82107   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFeatures2(Dispatch const & d) const82108   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82109   {
82110     StructureChain<X, Y, Z...> structureChain;
82111     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2& features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
82112     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
82113     return structureChain;
82114   }
82115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82116 
82117   template<typename Dispatch>
getFeatures2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const82118   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82119   {
82120     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
82121   }
82122 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82123   template<typename Dispatch>
getFeatures2KHR(Dispatch const & d) const82124   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82125   {
82126     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
82127     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
82128     return features;
82129   }
82130   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFeatures2KHR(Dispatch const & d) const82131   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82132   {
82133     StructureChain<X, Y, Z...> structureChain;
82134     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2& features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
82135     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
82136     return structureChain;
82137   }
82138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82139 
82140   template<typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,Dispatch const & d) const82141   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82142   {
82143     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( pFormatProperties ) );
82144   }
82145 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82146   template<typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const82147   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82148   {
82149     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
82150     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( &formatProperties ) );
82151     return formatProperties;
82152   }
82153 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82154 
82155   template<typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const82156   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82157   {
82158     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
82159   }
82160 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82161   template<typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const82162   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82163   {
82164     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
82165     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
82166     return formatProperties;
82167   }
82168   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const82169   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82170   {
82171     StructureChain<X, Y, Z...> structureChain;
82172     VULKAN_HPP_NAMESPACE::FormatProperties2& formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
82173     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
82174     return structureChain;
82175   }
82176 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82177 
82178   template<typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const82179   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82180   {
82181     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
82182   }
82183 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82184   template<typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const82185   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82186   {
82187     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
82188     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
82189     return formatProperties;
82190   }
82191   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const82192   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82193   {
82194     StructureChain<X, Y, Z...> structureChain;
82195     VULKAN_HPP_NAMESPACE::FormatProperties2& formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
82196     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
82197     return structureChain;
82198   }
82199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82200 
82201   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) const82202   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
82203   {
82204     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 ) ) );
82205   }
82206 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82207   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) const82208   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
82209   {
82210     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
82211     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 ) ) );
82212     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties" );
82213   }
82214 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82215 
82216   template<typename Dispatch>
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const82217   VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82218   {
82219     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
82220   }
82221 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82222   template<typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const82223   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
82224   {
82225     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
82226     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
82227     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
82228   }
82229   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const82230   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
82231   {
82232     StructureChain<X, Y, Z...> structureChain;
82233     VULKAN_HPP_NAMESPACE::ImageFormatProperties2& imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
82234     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
82235     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
82236   }
82237 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82238 
82239   template<typename Dispatch>
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const82240   VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82241   {
82242     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
82243   }
82244 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82245   template<typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const82246   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
82247   {
82248     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
82249     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
82250     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
82251   }
82252   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const82253   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
82254   {
82255     StructureChain<X, Y, Z...> structureChain;
82256     VULKAN_HPP_NAMESPACE::ImageFormatProperties2& imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
82257     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
82258     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
82259   }
82260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82261 
82262   template<typename Dispatch>
getMemoryProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,Dispatch const & d) const82263   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82264   {
82265     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( pMemoryProperties ) );
82266   }
82267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82268   template<typename Dispatch>
getMemoryProperties(Dispatch const & d) const82269   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82270   {
82271     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
82272     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( &memoryProperties ) );
82273     return memoryProperties;
82274   }
82275 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82276 
82277   template<typename Dispatch>
getMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const82278   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82279   {
82280     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
82281   }
82282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82283   template<typename Dispatch>
getMemoryProperties2(Dispatch const & d) const82284   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82285   {
82286     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
82287     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
82288     return memoryProperties;
82289   }
82290   template<typename X, typename Y, typename ...Z, typename Dispatch>
getMemoryProperties2(Dispatch const & d) const82291   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82292   {
82293     StructureChain<X, Y, Z...> structureChain;
82294     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
82295     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
82296     return structureChain;
82297   }
82298 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82299 
82300   template<typename Dispatch>
getMemoryProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const82301   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82302   {
82303     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
82304   }
82305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82306   template<typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const82307   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82308   {
82309     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
82310     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
82311     return memoryProperties;
82312   }
82313   template<typename X, typename Y, typename ...Z, typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const82314   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82315   {
82316     StructureChain<X, Y, Z...> structureChain;
82317     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
82318     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
82319     return structureChain;
82320   }
82321 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82322 
82323   template<typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,Dispatch const & d) const82324   VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82325   {
82326     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( pMultisampleProperties ) );
82327   }
82328 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82329   template<typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,Dispatch const & d) const82330   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82331   {
82332     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
82333     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( &multisampleProperties ) );
82334     return multisampleProperties;
82335   }
82336 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82337 
82338   template<typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pRectCount,VULKAN_HPP_NAMESPACE::Rect2D * pRects,Dispatch const & d) const82339   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
82340   {
82341     return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast<VkRect2D*>( pRects ) ) );
82342   }
82343 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82344   template<typename Allocator, typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const82345   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
82346   {
82347     std::vector<Rect2D,Allocator> rects;
82348     uint32_t rectCount;
82349     Result result;
82350     do
82351     {
82352       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
82353       if ( ( result == Result::eSuccess ) && rectCount )
82354       {
82355         rects.resize( rectCount );
82356         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
82357       }
82358     } while ( result == Result::eIncomplete );
82359     if ( result == Result::eSuccess )
82360     {
82361       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
82362       rects.resize( rectCount );
82363     }
82364     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
82365   }
82366   template<typename Allocator, typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const82367   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
82368   {
82369     std::vector<Rect2D,Allocator> rects( vectorAllocator );
82370     uint32_t rectCount;
82371     Result result;
82372     do
82373     {
82374       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
82375       if ( ( result == Result::eSuccess ) && rectCount )
82376       {
82377         rects.resize( rectCount );
82378         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
82379       }
82380     } while ( result == Result::eIncomplete );
82381     if ( result == Result::eSuccess )
82382     {
82383       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
82384       rects.resize( rectCount );
82385     }
82386     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
82387   }
82388 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82389 
82390   template<typename Dispatch>
getProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,Dispatch const & d) const82391   VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82392   {
82393     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( pProperties ) );
82394   }
82395 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82396   template<typename Dispatch>
getProperties(Dispatch const & d) const82397   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82398   {
82399     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
82400     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( &properties ) );
82401     return properties;
82402   }
82403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82404 
82405   template<typename Dispatch>
getProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const82406   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82407   {
82408     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
82409   }
82410 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82411   template<typename Dispatch>
getProperties2(Dispatch const & d) const82412   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82413   {
82414     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
82415     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
82416     return properties;
82417   }
82418   template<typename X, typename Y, typename ...Z, typename Dispatch>
getProperties2(Dispatch const & d) const82419   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82420   {
82421     StructureChain<X, Y, Z...> structureChain;
82422     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2& properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
82423     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
82424     return structureChain;
82425   }
82426 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82427 
82428   template<typename Dispatch>
getProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const82429   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82430   {
82431     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
82432   }
82433 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82434   template<typename Dispatch>
getProperties2KHR(Dispatch const & d) const82435   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82436   {
82437     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
82438     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
82439     return properties;
82440   }
82441   template<typename X, typename Y, typename ...Z, typename Dispatch>
getProperties2KHR(Dispatch const & d) const82442   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82443   {
82444     StructureChain<X, Y, Z...> structureChain;
82445     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2& properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
82446     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
82447     return structureChain;
82448   }
82449 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82450 
82451   template<typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses,Dispatch const & d) const82452   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82453   {
82454     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( pPerformanceQueryCreateInfo ), pNumPasses );
82455   }
82456 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82457   template<typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo,Dispatch const & d) const82458   VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
82459   {
82460     uint32_t numPasses;
82461     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( &performanceQueryCreateInfo ), &numPasses );
82462     return numPasses;
82463   }
82464 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82465 
82466   template<typename Dispatch>
getQueueFamilyProperties(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,Dispatch const & d) const82467   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82468   {
82469     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( pQueueFamilyProperties ) );
82470   }
82471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82472   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties(Dispatch const & d) const82473   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties,Allocator> PhysicalDevice::getQueueFamilyProperties(Dispatch const &d ) const
82474   {
82475     std::vector<QueueFamilyProperties,Allocator> queueFamilyProperties;
82476     uint32_t queueFamilyPropertyCount;
82477     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82478     queueFamilyProperties.resize( queueFamilyPropertyCount );
82479     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( queueFamilyProperties.data() ) );
82480     return queueFamilyProperties;
82481   }
82482   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties(Allocator const & vectorAllocator,Dispatch const & d) const82483   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties,Allocator> PhysicalDevice::getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
82484   {
82485     std::vector<QueueFamilyProperties,Allocator> queueFamilyProperties( vectorAllocator );
82486     uint32_t queueFamilyPropertyCount;
82487     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82488     queueFamilyProperties.resize( queueFamilyPropertyCount );
82489     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( queueFamilyProperties.data() ) );
82490     return queueFamilyProperties;
82491   }
82492 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82493 
82494   template<typename Dispatch>
getQueueFamilyProperties2(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const82495   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82496   {
82497     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
82498   }
82499 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82500   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const82501   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
82502   {
82503     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
82504     uint32_t queueFamilyPropertyCount;
82505     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82506     queueFamilyProperties.resize( queueFamilyPropertyCount );
82507     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
82508     return queueFamilyProperties;
82509   }
82510   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const82511   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
82512   {
82513     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
82514     uint32_t queueFamilyPropertyCount;
82515     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82516     queueFamilyProperties.resize( queueFamilyPropertyCount );
82517     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
82518     return queueFamilyProperties;
82519   }
82520   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const82521   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
82522   {
82523     std::vector<StructureChain,Allocator> queueFamilyProperties;
82524     uint32_t queueFamilyPropertyCount;
82525     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82526     queueFamilyProperties.resize( queueFamilyPropertyCount );
82527     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
82528     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82529     {
82530       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
82531     }
82532     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
82533     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82534     {
82535       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
82536     }
82537     return queueFamilyProperties;
82538   }
82539   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const82540   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
82541   {
82542     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
82543     uint32_t queueFamilyPropertyCount;
82544     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82545     queueFamilyProperties.resize( queueFamilyPropertyCount );
82546     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
82547     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82548     {
82549       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
82550     }
82551     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
82552     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82553     {
82554       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
82555     }
82556     return queueFamilyProperties;
82557   }
82558 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82559 
82560   template<typename Dispatch>
getQueueFamilyProperties2KHR(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const82561   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82562   {
82563     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
82564   }
82565 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82566   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const82567   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
82568   {
82569     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
82570     uint32_t queueFamilyPropertyCount;
82571     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82572     queueFamilyProperties.resize( queueFamilyPropertyCount );
82573     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
82574     return queueFamilyProperties;
82575   }
82576   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const82577   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
82578   {
82579     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
82580     uint32_t queueFamilyPropertyCount;
82581     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82582     queueFamilyProperties.resize( queueFamilyPropertyCount );
82583     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
82584     return queueFamilyProperties;
82585   }
82586   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const82587   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
82588   {
82589     std::vector<StructureChain,Allocator> queueFamilyProperties;
82590     uint32_t queueFamilyPropertyCount;
82591     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82592     queueFamilyProperties.resize( queueFamilyPropertyCount );
82593     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
82594     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82595     {
82596       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
82597     }
82598     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
82599     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82600     {
82601       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
82602     }
82603     return queueFamilyProperties;
82604   }
82605   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const82606   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
82607   {
82608     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
82609     uint32_t queueFamilyPropertyCount;
82610     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
82611     queueFamilyProperties.resize( queueFamilyPropertyCount );
82612     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
82613     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82614     {
82615       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
82616     }
82617     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
82618     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
82619     {
82620       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
82621     }
82622     return queueFamilyProperties;
82623   }
82624 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82625 
82626   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) const82627   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
82628   {
82629     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 ) );
82630   }
82631 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82632   template<typename Allocator, 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) const82633   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties,Allocator> 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
82634   {
82635     std::vector<SparseImageFormatProperties,Allocator> properties;
82636     uint32_t propertyCount;
82637     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 );
82638     properties.resize( propertyCount );
82639     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() ) );
82640     return properties;
82641   }
82642   template<typename Allocator, 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,Allocator const & vectorAllocator,Dispatch const & d) const82643   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties,Allocator> 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, Allocator const& vectorAllocator, Dispatch const &d ) const
82644   {
82645     std::vector<SparseImageFormatProperties,Allocator> properties( vectorAllocator );
82646     uint32_t propertyCount;
82647     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 );
82648     properties.resize( propertyCount );
82649     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() ) );
82650     return properties;
82651   }
82652 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82653 
82654   template<typename Dispatch>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const82655   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
82656   {
82657     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( pFormatInfo ), pPropertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( pProperties ) );
82658   }
82659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82660   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const82661   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const
82662   {
82663     std::vector<SparseImageFormatProperties2,Allocator> properties;
82664     uint32_t propertyCount;
82665     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
82666     properties.resize( propertyCount );
82667     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
82668     return properties;
82669   }
82670   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Allocator const & vectorAllocator,Dispatch const & d) const82671   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82672   {
82673     std::vector<SparseImageFormatProperties2,Allocator> properties( vectorAllocator );
82674     uint32_t propertyCount;
82675     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
82676     properties.resize( propertyCount );
82677     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
82678     return properties;
82679   }
82680 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82681 
82682   template<typename Dispatch>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const82683   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
82684   {
82685     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( pFormatInfo ), pPropertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( pProperties ) );
82686   }
82687 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82688   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const82689   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const
82690   {
82691     std::vector<SparseImageFormatProperties2,Allocator> properties;
82692     uint32_t propertyCount;
82693     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
82694     properties.resize( propertyCount );
82695     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
82696     return properties;
82697   }
82698   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Allocator const & vectorAllocator,Dispatch const & d) const82699   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82700   {
82701     std::vector<SparseImageFormatProperties2,Allocator> properties( vectorAllocator );
82702     uint32_t propertyCount;
82703     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
82704     properties.resize( propertyCount );
82705     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
82706     return properties;
82707   }
82708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82709 
82710   template<typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t * pCombinationCount,VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations,Dispatch const & d) const82711   VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82712   {
82713     return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( pCombinations ) ) );
82714   }
82715 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82716   template<typename Allocator, typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const & d) const82717   VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d ) const
82718   {
82719     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations;
82720     uint32_t combinationCount;
82721     Result result;
82722     do
82723     {
82724       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
82725       if ( ( result == Result::eSuccess ) && combinationCount )
82726       {
82727         combinations.resize( combinationCount );
82728         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
82729       }
82730     } while ( result == Result::eIncomplete );
82731     if ( result == Result::eSuccess )
82732     {
82733       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
82734       combinations.resize( combinationCount );
82735     }
82736     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
82737   }
82738   template<typename Allocator, typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const & vectorAllocator,Dispatch const & d) const82739   VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const
82740   {
82741     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations( vectorAllocator );
82742     uint32_t combinationCount;
82743     Result result;
82744     do
82745     {
82746       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
82747       if ( ( result == Result::eSuccess ) && combinationCount )
82748       {
82749         combinations.resize( combinationCount );
82750         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
82751       }
82752     } while ( result == Result::eIncomplete );
82753     if ( result == Result::eSuccess )
82754     {
82755       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
82756       combinations.resize( combinationCount );
82757     }
82758     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
82759   }
82760 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82761 
82762   template<typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,Dispatch const & d) const82763   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82764   {
82765     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( pSurfaceCapabilities ) ) );
82766   }
82767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82768   template<typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const82769   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>::type PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
82770   {
82771     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
82772     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( &surfaceCapabilities ) ) );
82773     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2EXT" );
82774   }
82775 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82776 
82777   template<typename Dispatch>
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities,Dispatch const & d) const82778   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82779   {
82780     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( pSurfaceCapabilities ) ) );
82781   }
82782 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82783   template<typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const82784   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
82785   {
82786     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
82787     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
82788     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
82789   }
82790   template<typename X, typename Y, typename ...Z, typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const82791   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
82792   {
82793     StructureChain<X, Y, Z...> structureChain;
82794     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR& surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
82795     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
82796     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
82797   }
82798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82799 
82800   template<typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,Dispatch const & d) const82801   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82802   {
82803     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( pSurfaceCapabilities ) ) );
82804   }
82805 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82806   template<typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const82807   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>::type PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
82808   {
82809     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
82810     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( &surfaceCapabilities ) ) );
82811     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilitiesKHR" );
82812   }
82813 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82814 
82815   template<typename Dispatch>
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,Dispatch const & d) const82816   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
82817   {
82818     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( pSurfaceFormats ) ) );
82819   }
82820 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82821   template<typename Allocator, typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const82822   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
82823   {
82824     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats;
82825     uint32_t surfaceFormatCount;
82826     Result result;
82827     do
82828     {
82829       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
82830       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
82831       {
82832         surfaceFormats.resize( surfaceFormatCount );
82833         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
82834       }
82835     } while ( result == Result::eIncomplete );
82836     if ( result == Result::eSuccess )
82837     {
82838       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
82839       surfaceFormats.resize( surfaceFormatCount );
82840     }
82841     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
82842   }
82843   template<typename Allocator, typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const82844   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82845   {
82846     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats( vectorAllocator );
82847     uint32_t surfaceFormatCount;
82848     Result result;
82849     do
82850     {
82851       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
82852       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
82853       {
82854         surfaceFormats.resize( surfaceFormatCount );
82855         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
82856       }
82857     } while ( result == Result::eIncomplete );
82858     if ( result == Result::eSuccess )
82859     {
82860       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
82861       surfaceFormats.resize( surfaceFormatCount );
82862     }
82863     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
82864   }
82865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82866 
82867   template<typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,Dispatch const & d) const82868   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
82869   {
82870     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( pSurfaceFormats ) ) );
82871   }
82872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82873   template<typename Allocator, typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const82874   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
82875   {
82876     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats;
82877     uint32_t surfaceFormatCount;
82878     Result result;
82879     do
82880     {
82881       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
82882       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
82883       {
82884         surfaceFormats.resize( surfaceFormatCount );
82885         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
82886       }
82887     } while ( result == Result::eIncomplete );
82888     if ( result == Result::eSuccess )
82889     {
82890       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
82891       surfaceFormats.resize( surfaceFormatCount );
82892     }
82893     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
82894   }
82895   template<typename Allocator, typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const82896   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
82897   {
82898     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats( vectorAllocator );
82899     uint32_t surfaceFormatCount;
82900     Result result;
82901     do
82902     {
82903       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
82904       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
82905       {
82906         surfaceFormats.resize( surfaceFormatCount );
82907         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
82908       }
82909     } while ( result == Result::eIncomplete );
82910     if ( result == Result::eSuccess )
82911     {
82912       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
82913       surfaceFormats.resize( surfaceFormatCount );
82914     }
82915     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
82916   }
82917 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82918 
82919 #ifdef VK_USE_PLATFORM_WIN32_KHR
82920   template<typename Dispatch>
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const82921   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
82922   {
82923     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
82924   }
82925 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82926   template<typename Allocator, typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const82927   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
82928   {
82929     std::vector<PresentModeKHR,Allocator> presentModes;
82930     uint32_t presentModeCount;
82931     Result result;
82932     do
82933     {
82934       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
82935       if ( ( result == Result::eSuccess ) && presentModeCount )
82936       {
82937         presentModes.resize( presentModeCount );
82938         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
82939       }
82940     } while ( result == Result::eIncomplete );
82941     if ( result == Result::eSuccess )
82942     {
82943       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
82944       presentModes.resize( presentModeCount );
82945     }
82946     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
82947   }
82948   template<typename Allocator, typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const82949   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82950   {
82951     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
82952     uint32_t presentModeCount;
82953     Result result;
82954     do
82955     {
82956       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
82957       if ( ( result == Result::eSuccess ) && presentModeCount )
82958       {
82959         presentModes.resize( presentModeCount );
82960         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
82961       }
82962     } while ( result == Result::eIncomplete );
82963     if ( result == Result::eSuccess )
82964     {
82965       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
82966       presentModes.resize( presentModeCount );
82967     }
82968     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
82969   }
82970 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82971 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
82972 
82973   template<typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const82974   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
82975   {
82976     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
82977   }
82978 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82979   template<typename Allocator, typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const82980   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
82981   {
82982     std::vector<PresentModeKHR,Allocator> presentModes;
82983     uint32_t presentModeCount;
82984     Result result;
82985     do
82986     {
82987       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
82988       if ( ( result == Result::eSuccess ) && presentModeCount )
82989       {
82990         presentModes.resize( presentModeCount );
82991         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
82992       }
82993     } while ( result == Result::eIncomplete );
82994     if ( result == Result::eSuccess )
82995     {
82996       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
82997       presentModes.resize( presentModeCount );
82998     }
82999     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
83000   }
83001   template<typename Allocator, typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const83002   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
83003   {
83004     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
83005     uint32_t presentModeCount;
83006     Result result;
83007     do
83008     {
83009       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
83010       if ( ( result == Result::eSuccess ) && presentModeCount )
83011       {
83012         presentModes.resize( presentModeCount );
83013         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
83014       }
83015     } while ( result == Result::eIncomplete );
83016     if ( result == Result::eSuccess )
83017     {
83018       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
83019       presentModes.resize( presentModeCount );
83020     }
83021     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
83022   }
83023 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83024 
83025   template<typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::Bool32 * pSupported,Dispatch const & d) const83026   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
83027   {
83028     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( pSupported ) ) );
83029   }
83030 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83031   template<typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const83032   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Bool32>::type PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
83033   {
83034     VULKAN_HPP_NAMESPACE::Bool32 supported;
83035     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( &supported ) ) );
83036     return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceSupportKHR" );
83037   }
83038 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83039 
83040   template<typename Dispatch>
getToolPropertiesEXT(uint32_t * pToolCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties,Dispatch const & d) const83041   VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83042   {
83043     return static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( pToolProperties ) ) );
83044   }
83045 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83046   template<typename Allocator, typename Dispatch>
getToolPropertiesEXT(Dispatch const & d) const83047   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type PhysicalDevice::getToolPropertiesEXT(Dispatch const &d ) const
83048   {
83049     std::vector<PhysicalDeviceToolPropertiesEXT,Allocator> toolProperties;
83050     uint32_t toolCount;
83051     Result result;
83052     do
83053     {
83054       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
83055       if ( ( result == Result::eSuccess ) && toolCount )
83056       {
83057         toolProperties.resize( toolCount );
83058         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( toolProperties.data() ) ) );
83059       }
83060     } while ( result == Result::eIncomplete );
83061     if ( result == Result::eSuccess )
83062     {
83063       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
83064       toolProperties.resize( toolCount );
83065     }
83066     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
83067   }
83068   template<typename Allocator, typename Dispatch>
getToolPropertiesEXT(Allocator const & vectorAllocator,Dispatch const & d) const83069   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type PhysicalDevice::getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
83070   {
83071     std::vector<PhysicalDeviceToolPropertiesEXT,Allocator> toolProperties( vectorAllocator );
83072     uint32_t toolCount;
83073     Result result;
83074     do
83075     {
83076       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
83077       if ( ( result == Result::eSuccess ) && toolCount )
83078       {
83079         toolProperties.resize( toolCount );
83080         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( toolProperties.data() ) ) );
83081       }
83082     } while ( result == Result::eIncomplete );
83083     if ( result == Result::eSuccess )
83084     {
83085       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
83086       toolProperties.resize( toolCount );
83087     }
83088     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
83089   }
83090 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83091 
83092 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
83093   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display * display,Dispatch const & d) const83094   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83095   {
83096     return static_cast<Bool32>( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
83097   }
83098 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83099   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display,Dispatch const & d) const83100   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
83101   {
83102     return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
83103   }
83104 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83105 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
83106 
83107 #ifdef VK_USE_PLATFORM_WIN32_KHR
83108 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83109   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const83110   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83111   {
83112     return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
83113   }
83114 #else
83115   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const83116   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
83117   {
83118     return d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex );
83119   }
83120 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83121 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83122 
83123 #ifdef VK_USE_PLATFORM_XCB_KHR
83124   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id,Dispatch const & d) const83125   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
83126   {
83127     return static_cast<Bool32>( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
83128   }
83129 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83130   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id,Dispatch const & d) const83131   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
83132   {
83133     return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
83134   }
83135 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83136 #endif /*VK_USE_PLATFORM_XCB_KHR*/
83137 
83138 #ifdef VK_USE_PLATFORM_XLIB_KHR
83139   template<typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display * dpy,VisualID visualID,Dispatch const & d) const83140   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83141   {
83142     return static_cast<Bool32>( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
83143   }
83144 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83145   template<typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID,Dispatch const & d) const83146   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
83147   {
83148     return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
83149   }
83150 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83151 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
83152 
83153 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
83154   template<typename Dispatch>
getRandROutputDisplayEXT(Display * dpy,RROutput rrOutput,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const83155   VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83156   {
83157     return static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( pDisplay ) ) );
83158   }
83159 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83160   template<typename Dispatch>
getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput,Dispatch const & d) const83161   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d ) const
83162   {
83163     VULKAN_HPP_NAMESPACE::DisplayKHR display;
83164     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( &display ) ) );
83165     return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getRandROutputDisplayEXT" );
83166   }
83167 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83168 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
83169 
83170 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83171   template<typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const83172   VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83173   {
83174     return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
83175   }
83176 #else
83177   template<typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const83178   VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
83179   {
83180     Result result = static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
83181     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::releaseDisplayEXT" );
83182   }
83183 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83184 
83185   template<typename Dispatch>
getCheckpointDataNV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,Dispatch const & d) const83186   VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83187   {
83188     d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( pCheckpointData ) );
83189   }
83190 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83191   template<typename Allocator, typename Dispatch>
getCheckpointDataNV(Dispatch const & d) const83192   VULKAN_HPP_INLINE std::vector<CheckpointDataNV,Allocator> Queue::getCheckpointDataNV(Dispatch const &d ) const
83193   {
83194     std::vector<CheckpointDataNV,Allocator> checkpointData;
83195     uint32_t checkpointDataCount;
83196     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
83197     checkpointData.resize( checkpointDataCount );
83198     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( checkpointData.data() ) );
83199     return checkpointData;
83200   }
83201   template<typename Allocator, typename Dispatch>
getCheckpointDataNV(Allocator const & vectorAllocator,Dispatch const & d) const83202   VULKAN_HPP_INLINE std::vector<CheckpointDataNV,Allocator> Queue::getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const
83203   {
83204     std::vector<CheckpointDataNV,Allocator> checkpointData( vectorAllocator );
83205     uint32_t checkpointDataCount;
83206     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
83207     checkpointData.resize( checkpointDataCount );
83208     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( checkpointData.data() ) );
83209     return checkpointData;
83210   }
83211 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83212 
83213   template<typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const83214   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83215   {
83216     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
83217   }
83218 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83219   template<typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const83220   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
83221   {
83222     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
83223   }
83224 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83225 
83226   template<typename Dispatch>
bindSparse(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const83227   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
83228   {
83229     return static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast<const VkBindSparseInfo*>( pBindInfo ), static_cast<VkFence>( fence ) ) );
83230   }
83231 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83232   template<typename Dispatch>
bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> bindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const83233   VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::bindSparse( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const
83234   {
83235     Result result = static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfo.size() , reinterpret_cast<const VkBindSparseInfo*>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
83236     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::bindSparse" );
83237   }
83238 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83239 
83240 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83241   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const83242   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83243   {
83244     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
83245   }
83246 #else
83247   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const83248   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
83249   {
83250     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
83251   }
83252 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83253 
83254   template<typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const83255   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83256   {
83257     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
83258   }
83259 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83260   template<typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const83261   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
83262   {
83263     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
83264   }
83265 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83266 
83267   template<typename Dispatch>
presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo,Dispatch const & d) const83268   VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83269   {
83270     return static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR*>( pPresentInfo ) ) );
83271   }
83272 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83273   template<typename Dispatch>
presentKHR(const PresentInfoKHR & presentInfo,Dispatch const & d) const83274   VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d ) const
83275   {
83276     Result result = static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR*>( &presentInfo ) ) );
83277     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::presentKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
83278   }
83279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83280 
83281 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83282   template<typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const83283   VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83284   {
83285     return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
83286   }
83287 #else
83288   template<typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const83289   VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d ) const
83290   {
83291     Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
83292     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::setPerformanceConfigurationINTEL" );
83293   }
83294 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83295 
83296   template<typename Dispatch>
submit(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const83297   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
83298   {
83299     return static_cast<Result>( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo*>( pSubmits ), static_cast<VkFence>( fence ) ) );
83300   }
83301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83302   template<typename Dispatch>
submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const83303   VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::submit( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const
83304   {
83305     Result result = static_cast<Result>( d.vkQueueSubmit( m_queue, submits.size() , reinterpret_cast<const VkSubmitInfo*>( submits.data() ), static_cast<VkFence>( fence ) ) );
83306     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::submit" );
83307   }
83308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83309 
83310 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83311   template<typename Dispatch>
waitIdle(Dispatch const & d) const83312   VULKAN_HPP_INLINE Result Queue::waitIdle(Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83313   {
83314     return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
83315   }
83316 #else
83317   template<typename Dispatch>
waitIdle(Dispatch const & d) const83318   VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::waitIdle(Dispatch const &d ) const
83319   {
83320     Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
83321     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::waitIdle" );
83322   }
83323 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83324 
83325 #ifdef VK_USE_PLATFORM_ANDROID_KHR
83326   template <> struct isStructureChainValid<AndroidHardwareBufferPropertiesANDROID, AndroidHardwareBufferFormatPropertiesANDROID>{ enum { value = true }; };
83327 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
83328 #ifdef VK_USE_PLATFORM_ANDROID_KHR
83329   template <> struct isStructureChainValid<ImageFormatProperties2, AndroidHardwareBufferUsageANDROID>{ enum { value = true }; };
83330 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
83331   template <> struct isStructureChainValid<AttachmentDescription2, AttachmentDescriptionStencilLayout>{ enum { value = true }; };
83332   template <> struct isStructureChainValid<AttachmentReference2, AttachmentReferenceStencilLayout>{ enum { value = true }; };
83333   template <> struct isStructureChainValid<BindBufferMemoryInfo, BindBufferMemoryDeviceGroupInfo>{ enum { value = true }; };
83334   template <> struct isStructureChainValid<BindImageMemoryInfo, BindImageMemoryDeviceGroupInfo>{ enum { value = true }; };
83335   template <> struct isStructureChainValid<BindImageMemoryInfo, BindImageMemorySwapchainInfoKHR>{ enum { value = true }; };
83336   template <> struct isStructureChainValid<BindImageMemoryInfo, BindImagePlaneMemoryInfo>{ enum { value = true }; };
83337   template <> struct isStructureChainValid<BufferCreateInfo, BufferDeviceAddressCreateInfoEXT>{ enum { value = true }; };
83338   template <> struct isStructureChainValid<BufferCreateInfo, BufferOpaqueCaptureAddressCreateInfo>{ enum { value = true }; };
83339   template <> struct isStructureChainValid<CommandBufferInheritanceInfo, CommandBufferInheritanceConditionalRenderingInfoEXT>{ enum { value = true }; };
83340   template <> struct isStructureChainValid<CommandBufferInheritanceInfo, CommandBufferInheritanceRenderPassTransformInfoQCOM>{ enum { value = true }; };
83341 #ifdef VK_USE_PLATFORM_WIN32_KHR
83342   template <> struct isStructureChainValid<SubmitInfo, D3D12FenceSubmitInfoKHR>{ enum { value = true }; };
83343 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83344   template <> struct isStructureChainValid<InstanceCreateInfo, DebugReportCallbackCreateInfoEXT>{ enum { value = true }; };
83345   template <> struct isStructureChainValid<InstanceCreateInfo, DebugUtilsMessengerCreateInfoEXT>{ enum { value = true }; };
83346   template <> struct isStructureChainValid<BufferCreateInfo, DedicatedAllocationBufferCreateInfoNV>{ enum { value = true }; };
83347   template <> struct isStructureChainValid<ImageCreateInfo, DedicatedAllocationImageCreateInfoNV>{ enum { value = true }; };
83348   template <> struct isStructureChainValid<MemoryAllocateInfo, DedicatedAllocationMemoryAllocateInfoNV>{ enum { value = true }; };
83349 #ifdef VK_ENABLE_BETA_EXTENSIONS
83350   template <> struct isStructureChainValid<RayTracingPipelineCreateInfoKHR, DeferredOperationInfoKHR>{ enum { value = true }; };
83351   template <> struct isStructureChainValid<AccelerationStructureBuildGeometryInfoKHR, DeferredOperationInfoKHR>{ enum { value = true }; };
83352   template <> struct isStructureChainValid<CopyAccelerationStructureInfoKHR, DeferredOperationInfoKHR>{ enum { value = true }; };
83353   template <> struct isStructureChainValid<CopyMemoryToAccelerationStructureInfoKHR, DeferredOperationInfoKHR>{ enum { value = true }; };
83354   template <> struct isStructureChainValid<CopyAccelerationStructureToMemoryInfoKHR, DeferredOperationInfoKHR>{ enum { value = true }; };
83355 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83356   template <> struct isStructureChainValid<DescriptorPoolCreateInfo, DescriptorPoolInlineUniformBlockCreateInfoEXT>{ enum { value = true }; };
83357   template <> struct isStructureChainValid<DescriptorSetLayoutCreateInfo, DescriptorSetLayoutBindingFlagsCreateInfo>{ enum { value = true }; };
83358   template <> struct isStructureChainValid<DescriptorSetAllocateInfo, DescriptorSetVariableDescriptorCountAllocateInfo>{ enum { value = true }; };
83359   template <> struct isStructureChainValid<DescriptorSetLayoutSupport, DescriptorSetVariableDescriptorCountLayoutSupport>{ enum { value = true }; };
83360   template <> struct isStructureChainValid<DeviceCreateInfo, DeviceDiagnosticsConfigCreateInfoNV>{ enum { value = true }; };
83361   template <> struct isStructureChainValid<BindSparseInfo, DeviceGroupBindSparseInfo>{ enum { value = true }; };
83362   template <> struct isStructureChainValid<CommandBufferBeginInfo, DeviceGroupCommandBufferBeginInfo>{ enum { value = true }; };
83363   template <> struct isStructureChainValid<DeviceCreateInfo, DeviceGroupDeviceCreateInfo>{ enum { value = true }; };
83364   template <> struct isStructureChainValid<PresentInfoKHR, DeviceGroupPresentInfoKHR>{ enum { value = true }; };
83365   template <> struct isStructureChainValid<RenderPassBeginInfo, DeviceGroupRenderPassBeginInfo>{ enum { value = true }; };
83366   template <> struct isStructureChainValid<SubmitInfo, DeviceGroupSubmitInfo>{ enum { value = true }; };
83367   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, DeviceGroupSwapchainCreateInfoKHR>{ enum { value = true }; };
83368   template <> struct isStructureChainValid<DeviceCreateInfo, DeviceMemoryOverallocationCreateInfoAMD>{ enum { value = true }; };
83369   template <> struct isStructureChainValid<DeviceQueueCreateInfo, DeviceQueueGlobalPriorityCreateInfoEXT>{ enum { value = true }; };
83370   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, DisplayNativeHdrSurfaceCapabilitiesAMD>{ enum { value = true }; };
83371   template <> struct isStructureChainValid<PresentInfoKHR, DisplayPresentInfoKHR>{ enum { value = true }; };
83372   template <> struct isStructureChainValid<FormatProperties2, DrmFormatModifierPropertiesListEXT>{ enum { value = true }; };
83373   template <> struct isStructureChainValid<FenceCreateInfo, ExportFenceCreateInfo>{ enum { value = true }; };
83374 #ifdef VK_USE_PLATFORM_WIN32_KHR
83375   template <> struct isStructureChainValid<FenceCreateInfo, ExportFenceWin32HandleInfoKHR>{ enum { value = true }; };
83376 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83377   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryAllocateInfo>{ enum { value = true }; };
83378   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryAllocateInfoNV>{ enum { value = true }; };
83379 #ifdef VK_USE_PLATFORM_WIN32_KHR
83380   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryWin32HandleInfoKHR>{ enum { value = true }; };
83381 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83382 #ifdef VK_USE_PLATFORM_WIN32_KHR
83383   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryWin32HandleInfoNV>{ enum { value = true }; };
83384 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83385   template <> struct isStructureChainValid<SemaphoreCreateInfo, ExportSemaphoreCreateInfo>{ enum { value = true }; };
83386 #ifdef VK_USE_PLATFORM_WIN32_KHR
83387   template <> struct isStructureChainValid<SemaphoreCreateInfo, ExportSemaphoreWin32HandleInfoKHR>{ enum { value = true }; };
83388 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83389 #ifdef VK_USE_PLATFORM_ANDROID_KHR
83390   template <> struct isStructureChainValid<ImageCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
83391   template <> struct isStructureChainValid<SamplerYcbcrConversionCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
83392 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
83393   template <> struct isStructureChainValid<ImageFormatProperties2, ExternalImageFormatProperties>{ enum { value = true }; };
83394   template <> struct isStructureChainValid<BufferCreateInfo, ExternalMemoryBufferCreateInfo>{ enum { value = true }; };
83395   template <> struct isStructureChainValid<ImageCreateInfo, ExternalMemoryImageCreateInfo>{ enum { value = true }; };
83396   template <> struct isStructureChainValid<ImageCreateInfo, ExternalMemoryImageCreateInfoNV>{ enum { value = true }; };
83397   template <> struct isStructureChainValid<ImageFormatProperties2, FilterCubicImageViewImageFormatPropertiesEXT>{ enum { value = true }; };
83398   template <> struct isStructureChainValid<FramebufferCreateInfo, FramebufferAttachmentsCreateInfo>{ enum { value = true }; };
83399   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, GraphicsPipelineShaderGroupsCreateInfoNV>{ enum { value = true }; };
83400   template <> struct isStructureChainValid<ImageCreateInfo, ImageDrmFormatModifierExplicitCreateInfoEXT>{ enum { value = true }; };
83401   template <> struct isStructureChainValid<ImageCreateInfo, ImageDrmFormatModifierListCreateInfoEXT>{ enum { value = true }; };
83402   template <> struct isStructureChainValid<ImageCreateInfo, ImageFormatListCreateInfo>{ enum { value = true }; };
83403   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, ImageFormatListCreateInfo>{ enum { value = true }; };
83404   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, ImageFormatListCreateInfo>{ enum { value = true }; };
83405   template <> struct isStructureChainValid<ImageMemoryRequirementsInfo2, ImagePlaneMemoryRequirementsInfo>{ enum { value = true }; };
83406   template <> struct isStructureChainValid<ImageCreateInfo, ImageStencilUsageCreateInfo>{ enum { value = true }; };
83407   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, ImageStencilUsageCreateInfo>{ enum { value = true }; };
83408   template <> struct isStructureChainValid<ImageCreateInfo, ImageSwapchainCreateInfoKHR>{ enum { value = true }; };
83409   template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewASTCDecodeModeEXT>{ enum { value = true }; };
83410   template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewUsageCreateInfo>{ enum { value = true }; };
83411 #ifdef VK_USE_PLATFORM_ANDROID_KHR
83412   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportAndroidHardwareBufferInfoANDROID>{ enum { value = true }; };
83413 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
83414   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryFdInfoKHR>{ enum { value = true }; };
83415   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryHostPointerInfoEXT>{ enum { value = true }; };
83416 #ifdef VK_USE_PLATFORM_WIN32_KHR
83417   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryWin32HandleInfoKHR>{ enum { value = true }; };
83418 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83419 #ifdef VK_USE_PLATFORM_WIN32_KHR
83420   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryWin32HandleInfoNV>{ enum { value = true }; };
83421 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83422   template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryAllocateFlagsInfo>{ enum { value = true }; };
83423   template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryDedicatedAllocateInfo>{ enum { value = true }; };
83424   template <> struct isStructureChainValid<MemoryRequirements2, MemoryDedicatedRequirements>{ enum { value = true }; };
83425   template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryOpaqueCaptureAddressAllocateInfo>{ enum { value = true }; };
83426   template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryPriorityAllocateInfoEXT>{ enum { value = true }; };
83427   template <> struct isStructureChainValid<SubmitInfo, PerformanceQuerySubmitInfoKHR>{ enum { value = true }; };
83428   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevice16BitStorageFeatures>{ enum { value = true }; };
83429   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevice16BitStorageFeatures>{ enum { value = true }; };
83430   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevice8BitStorageFeatures>{ enum { value = true }; };
83431   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevice8BitStorageFeatures>{ enum { value = true }; };
83432   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; };
83433   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; };
83434   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; };
83435   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; };
83436   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceBlendOperationAdvancedPropertiesEXT>{ enum { value = true }; };
83437   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBufferDeviceAddressFeatures>{ enum { value = true }; };
83438   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBufferDeviceAddressFeatures>{ enum { value = true }; };
83439   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBufferDeviceAddressFeaturesEXT>{ enum { value = true }; };
83440   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBufferDeviceAddressFeaturesEXT>{ enum { value = true }; };
83441   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCoherentMemoryFeaturesAMD>{ enum { value = true }; };
83442   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCoherentMemoryFeaturesAMD>{ enum { value = true }; };
83443   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; };
83444   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; };
83445   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; };
83446   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; };
83447   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceConservativeRasterizationPropertiesEXT>{ enum { value = true }; };
83448   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCooperativeMatrixFeaturesNV>{ enum { value = true }; };
83449   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCooperativeMatrixFeaturesNV>{ enum { value = true }; };
83450   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceCooperativeMatrixPropertiesNV>{ enum { value = true }; };
83451   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; };
83452   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; };
83453   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCoverageReductionModeFeaturesNV>{ enum { value = true }; };
83454   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCoverageReductionModeFeaturesNV>{ enum { value = true }; };
83455   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCustomBorderColorFeaturesEXT>{ enum { value = true }; };
83456   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCustomBorderColorFeaturesEXT>{ enum { value = true }; };
83457   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceCustomBorderColorPropertiesEXT>{ enum { value = true }; };
83458   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>{ enum { value = true }; };
83459   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>{ enum { value = true }; };
83460   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDepthClipEnableFeaturesEXT>{ enum { value = true }; };
83461   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDepthClipEnableFeaturesEXT>{ enum { value = true }; };
83462   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDepthStencilResolveProperties>{ enum { value = true }; };
83463   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDescriptorIndexingFeatures>{ enum { value = true }; };
83464   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDescriptorIndexingFeatures>{ enum { value = true }; };
83465   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDescriptorIndexingProperties>{ enum { value = true }; };
83466   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>{ enum { value = true }; };
83467   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>{ enum { value = true }; };
83468   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>{ enum { value = true }; };
83469   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDiagnosticsConfigFeaturesNV>{ enum { value = true }; };
83470   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDiagnosticsConfigFeaturesNV>{ enum { value = true }; };
83471   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDiscardRectanglePropertiesEXT>{ enum { value = true }; };
83472   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDriverProperties>{ enum { value = true }; };
83473   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; };
83474   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; };
83475   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceExternalImageFormatInfo>{ enum { value = true }; };
83476   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceExternalMemoryHostPropertiesEXT>{ enum { value = true }; };
83477   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFeatures2>{ enum { value = true }; };
83478   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceFloatControlsProperties>{ enum { value = true }; };
83479   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentDensityMapFeaturesEXT>{ enum { value = true }; };
83480   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentDensityMapFeaturesEXT>{ enum { value = true }; };
83481   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceFragmentDensityMapPropertiesEXT>{ enum { value = true }; };
83482   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; };
83483   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; };
83484   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentShaderInterlockFeaturesEXT>{ enum { value = true }; };
83485   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentShaderInterlockFeaturesEXT>{ enum { value = true }; };
83486   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceHostQueryResetFeatures>{ enum { value = true }; };
83487   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceHostQueryResetFeatures>{ enum { value = true }; };
83488   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceIDProperties>{ enum { value = true }; };
83489   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceImageDrmFormatModifierInfoEXT>{ enum { value = true }; };
83490   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceImageViewImageFormatInfoEXT>{ enum { value = true }; };
83491   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceImagelessFramebufferFeatures>{ enum { value = true }; };
83492   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceImagelessFramebufferFeatures>{ enum { value = true }; };
83493   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceIndexTypeUint8FeaturesEXT>{ enum { value = true }; };
83494   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceIndexTypeUint8FeaturesEXT>{ enum { value = true }; };
83495   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; };
83496   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; };
83497   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceInlineUniformBlockPropertiesEXT>{ enum { value = true }; };
83498   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceLineRasterizationFeaturesEXT>{ enum { value = true }; };
83499   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceLineRasterizationFeaturesEXT>{ enum { value = true }; };
83500   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceLineRasterizationPropertiesEXT>{ enum { value = true }; };
83501   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMaintenance3Properties>{ enum { value = true }; };
83502   template <> struct isStructureChainValid<PhysicalDeviceMemoryProperties2, PhysicalDeviceMemoryBudgetPropertiesEXT>{ enum { value = true }; };
83503   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMemoryPriorityFeaturesEXT>{ enum { value = true }; };
83504   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMemoryPriorityFeaturesEXT>{ enum { value = true }; };
83505   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; };
83506   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; };
83507   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMeshShaderPropertiesNV>{ enum { value = true }; };
83508   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMultiviewFeatures>{ enum { value = true }; };
83509   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMultiviewFeatures>{ enum { value = true }; };
83510   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>{ enum { value = true }; };
83511   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMultiviewProperties>{ enum { value = true }; };
83512   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePCIBusInfoPropertiesEXT>{ enum { value = true }; };
83513   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevicePerformanceQueryFeaturesKHR>{ enum { value = true }; };
83514   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevicePerformanceQueryFeaturesKHR>{ enum { value = true }; };
83515   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePerformanceQueryPropertiesKHR>{ enum { value = true }; };
83516   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevicePipelineCreationCacheControlFeaturesEXT>{ enum { value = true }; };
83517   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevicePipelineCreationCacheControlFeaturesEXT>{ enum { value = true }; };
83518   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>{ enum { value = true }; };
83519   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>{ enum { value = true }; };
83520   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePointClippingProperties>{ enum { value = true }; };
83521   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceProtectedMemoryFeatures>{ enum { value = true }; };
83522   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceProtectedMemoryFeatures>{ enum { value = true }; };
83523   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceProtectedMemoryProperties>{ enum { value = true }; };
83524   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePushDescriptorPropertiesKHR>{ enum { value = true }; };
83525 #ifdef VK_ENABLE_BETA_EXTENSIONS
83526   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceRayTracingFeaturesKHR>{ enum { value = true }; };
83527   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceRayTracingFeaturesKHR>{ enum { value = true }; };
83528 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83529 #ifdef VK_ENABLE_BETA_EXTENSIONS
83530   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceRayTracingPropertiesKHR>{ enum { value = true }; };
83531 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83532   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceRayTracingPropertiesNV>{ enum { value = true }; };
83533   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; };
83534   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; };
83535   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceRobustness2FeaturesEXT>{ enum { value = true }; };
83536   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceRobustness2FeaturesEXT>{ enum { value = true }; };
83537   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceRobustness2PropertiesEXT>{ enum { value = true }; };
83538   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSampleLocationsPropertiesEXT>{ enum { value = true }; };
83539   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSamplerFilterMinmaxProperties>{ enum { value = true }; };
83540   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceSamplerYcbcrConversionFeatures>{ enum { value = true }; };
83541   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceSamplerYcbcrConversionFeatures>{ enum { value = true }; };
83542   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceScalarBlockLayoutFeatures>{ enum { value = true }; };
83543   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceScalarBlockLayoutFeatures>{ enum { value = true }; };
83544   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceSeparateDepthStencilLayoutsFeatures>{ enum { value = true }; };
83545   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceSeparateDepthStencilLayoutsFeatures>{ enum { value = true }; };
83546   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderAtomicInt64Features>{ enum { value = true }; };
83547   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderAtomicInt64Features>{ enum { value = true }; };
83548   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderClockFeaturesKHR>{ enum { value = true }; };
83549   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderClockFeaturesKHR>{ enum { value = true }; };
83550   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderCoreProperties2AMD>{ enum { value = true }; };
83551   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderCorePropertiesAMD>{ enum { value = true }; };
83552   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>{ enum { value = true }; };
83553   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>{ enum { value = true }; };
83554   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderDrawParametersFeatures>{ enum { value = true }; };
83555   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderDrawParametersFeatures>{ enum { value = true }; };
83556   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderFloat16Int8Features>{ enum { value = true }; };
83557   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderFloat16Int8Features>{ enum { value = true }; };
83558   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; };
83559   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; };
83560   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>{ enum { value = true }; };
83561   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>{ enum { value = true }; };
83562   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderSMBuiltinsFeaturesNV>{ enum { value = true }; };
83563   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderSMBuiltinsFeaturesNV>{ enum { value = true }; };
83564   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderSMBuiltinsPropertiesNV>{ enum { value = true }; };
83565   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderSubgroupExtendedTypesFeatures>{ enum { value = true }; };
83566   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderSubgroupExtendedTypesFeatures>{ enum { value = true }; };
83567   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; };
83568   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; };
83569   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShadingRateImagePropertiesNV>{ enum { value = true }; };
83570   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSubgroupProperties>{ enum { value = true }; };
83571   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceSubgroupSizeControlFeaturesEXT>{ enum { value = true }; };
83572   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceSubgroupSizeControlFeaturesEXT>{ enum { value = true }; };
83573   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSubgroupSizeControlPropertiesEXT>{ enum { value = true }; };
83574   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTexelBufferAlignmentFeaturesEXT>{ enum { value = true }; };
83575   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTexelBufferAlignmentFeaturesEXT>{ enum { value = true }; };
83576   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceTexelBufferAlignmentPropertiesEXT>{ enum { value = true }; };
83577   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>{ enum { value = true }; };
83578   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>{ enum { value = true }; };
83579   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTimelineSemaphoreFeatures>{ enum { value = true }; };
83580   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTimelineSemaphoreFeatures>{ enum { value = true }; };
83581   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceTimelineSemaphoreProperties>{ enum { value = true }; };
83582   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTransformFeedbackFeaturesEXT>{ enum { value = true }; };
83583   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTransformFeedbackFeaturesEXT>{ enum { value = true }; };
83584   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceTransformFeedbackPropertiesEXT>{ enum { value = true }; };
83585   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceUniformBufferStandardLayoutFeatures>{ enum { value = true }; };
83586   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceUniformBufferStandardLayoutFeatures>{ enum { value = true }; };
83587   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVariablePointersFeatures>{ enum { value = true }; };
83588   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVariablePointersFeatures>{ enum { value = true }; };
83589   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; };
83590   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; };
83591   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceVertexAttributeDivisorPropertiesEXT>{ enum { value = true }; };
83592   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVulkan11Features>{ enum { value = true }; };
83593   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVulkan11Features>{ enum { value = true }; };
83594   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceVulkan11Properties>{ enum { value = true }; };
83595   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVulkan12Features>{ enum { value = true }; };
83596   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVulkan12Features>{ enum { value = true }; };
83597   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceVulkan12Properties>{ enum { value = true }; };
83598   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVulkanMemoryModelFeatures>{ enum { value = true }; };
83599   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVulkanMemoryModelFeatures>{ enum { value = true }; };
83600   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceYcbcrImageArraysFeaturesEXT>{ enum { value = true }; };
83601   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceYcbcrImageArraysFeaturesEXT>{ enum { value = true }; };
83602   template <> struct isStructureChainValid<PipelineColorBlendStateCreateInfo, PipelineColorBlendAdvancedStateCreateInfoEXT>{ enum { value = true }; };
83603   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineCompilerControlCreateInfoAMD>{ enum { value = true }; };
83604   template <> struct isStructureChainValid<ComputePipelineCreateInfo, PipelineCompilerControlCreateInfoAMD>{ enum { value = true }; };
83605   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageModulationStateCreateInfoNV>{ enum { value = true }; };
83606   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageReductionStateCreateInfoNV>{ enum { value = true }; };
83607   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageToColorStateCreateInfoNV>{ enum { value = true }; };
83608   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
83609   template <> struct isStructureChainValid<ComputePipelineCreateInfo, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
83610   template <> struct isStructureChainValid<RayTracingPipelineCreateInfoNV, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
83611 #ifdef VK_ENABLE_BETA_EXTENSIONS
83612   template <> struct isStructureChainValid<RayTracingPipelineCreateInfoKHR, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
83613 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83614   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineDiscardRectangleStateCreateInfoEXT>{ enum { value = true }; };
83615   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationConservativeStateCreateInfoEXT>{ enum { value = true }; };
83616   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationDepthClipStateCreateInfoEXT>{ enum { value = true }; };
83617   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationLineStateCreateInfoEXT>{ enum { value = true }; };
83618   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationStateRasterizationOrderAMD>{ enum { value = true }; };
83619   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationStateStreamCreateInfoEXT>{ enum { value = true }; };
83620   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineRepresentativeFragmentTestStateCreateInfoNV>{ enum { value = true }; };
83621   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineSampleLocationsStateCreateInfoEXT>{ enum { value = true }; };
83622   template <> struct isStructureChainValid<PipelineShaderStageCreateInfo, PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>{ enum { value = true }; };
83623   template <> struct isStructureChainValid<PipelineTessellationStateCreateInfo, PipelineTessellationDomainOriginStateCreateInfo>{ enum { value = true }; };
83624   template <> struct isStructureChainValid<PipelineVertexInputStateCreateInfo, PipelineVertexInputDivisorStateCreateInfoEXT>{ enum { value = true }; };
83625   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportCoarseSampleOrderStateCreateInfoNV>{ enum { value = true }; };
83626   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportExclusiveScissorStateCreateInfoNV>{ enum { value = true }; };
83627   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportShadingRateImageStateCreateInfoNV>{ enum { value = true }; };
83628   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportSwizzleStateCreateInfoNV>{ enum { value = true }; };
83629   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportWScalingStateCreateInfoNV>{ enum { value = true }; };
83630 #ifdef VK_USE_PLATFORM_GGP
83631   template <> struct isStructureChainValid<PresentInfoKHR, PresentFrameTokenGGP>{ enum { value = true }; };
83632 #endif /*VK_USE_PLATFORM_GGP*/
83633   template <> struct isStructureChainValid<PresentInfoKHR, PresentRegionsKHR>{ enum { value = true }; };
83634   template <> struct isStructureChainValid<PresentInfoKHR, PresentTimesInfoGOOGLE>{ enum { value = true }; };
83635   template <> struct isStructureChainValid<SubmitInfo, ProtectedSubmitInfo>{ enum { value = true }; };
83636   template <> struct isStructureChainValid<QueryPoolCreateInfo, QueryPoolPerformanceCreateInfoKHR>{ enum { value = true }; };
83637   template <> struct isStructureChainValid<QueryPoolCreateInfo, QueryPoolPerformanceQueryCreateInfoINTEL>{ enum { value = true }; };
83638   template <> struct isStructureChainValid<QueueFamilyProperties2, QueueFamilyCheckpointPropertiesNV>{ enum { value = true }; };
83639   template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassAttachmentBeginInfo>{ enum { value = true }; };
83640   template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassFragmentDensityMapCreateInfoEXT>{ enum { value = true }; };
83641   template <> struct isStructureChainValid<RenderPassCreateInfo2, RenderPassFragmentDensityMapCreateInfoEXT>{ enum { value = true }; };
83642   template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassInputAttachmentAspectCreateInfo>{ enum { value = true }; };
83643   template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassMultiviewCreateInfo>{ enum { value = true }; };
83644   template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassSampleLocationsBeginInfoEXT>{ enum { value = true }; };
83645   template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassTransformBeginInfoQCOM>{ enum { value = true }; };
83646   template <> struct isStructureChainValid<ImageMemoryBarrier, SampleLocationsInfoEXT>{ enum { value = true }; };
83647   template <> struct isStructureChainValid<SamplerCreateInfo, SamplerCustomBorderColorCreateInfoEXT>{ enum { value = true }; };
83648   template <> struct isStructureChainValid<SamplerCreateInfo, SamplerReductionModeCreateInfo>{ enum { value = true }; };
83649   template <> struct isStructureChainValid<ImageFormatProperties2, SamplerYcbcrConversionImageFormatProperties>{ enum { value = true }; };
83650   template <> struct isStructureChainValid<SamplerCreateInfo, SamplerYcbcrConversionInfo>{ enum { value = true }; };
83651   template <> struct isStructureChainValid<ImageViewCreateInfo, SamplerYcbcrConversionInfo>{ enum { value = true }; };
83652   template <> struct isStructureChainValid<SemaphoreCreateInfo, SemaphoreTypeCreateInfo>{ enum { value = true }; };
83653   template <> struct isStructureChainValid<PhysicalDeviceExternalSemaphoreInfo, SemaphoreTypeCreateInfo>{ enum { value = true }; };
83654   template <> struct isStructureChainValid<ShaderModuleCreateInfo, ShaderModuleValidationCacheCreateInfoEXT>{ enum { value = true }; };
83655   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SharedPresentSurfaceCapabilitiesKHR>{ enum { value = true }; };
83656   template <> struct isStructureChainValid<SubpassDescription2, SubpassDescriptionDepthStencilResolve>{ enum { value = true }; };
83657 #ifdef VK_USE_PLATFORM_WIN32_KHR
83658   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SurfaceCapabilitiesFullScreenExclusiveEXT>{ enum { value = true }; };
83659 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83660 #ifdef VK_USE_PLATFORM_WIN32_KHR
83661   template <> struct isStructureChainValid<PhysicalDeviceSurfaceInfo2KHR, SurfaceFullScreenExclusiveInfoEXT>{ enum { value = true }; };
83662   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SurfaceFullScreenExclusiveInfoEXT>{ enum { value = true }; };
83663 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83664 #ifdef VK_USE_PLATFORM_WIN32_KHR
83665   template <> struct isStructureChainValid<PhysicalDeviceSurfaceInfo2KHR, SurfaceFullScreenExclusiveWin32InfoEXT>{ enum { value = true }; };
83666   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SurfaceFullScreenExclusiveWin32InfoEXT>{ enum { value = true }; };
83667 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83668   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SurfaceProtectedCapabilitiesKHR>{ enum { value = true }; };
83669   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SwapchainCounterCreateInfoEXT>{ enum { value = true }; };
83670   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SwapchainDisplayNativeHdrCreateInfoAMD>{ enum { value = true }; };
83671   template <> struct isStructureChainValid<ImageFormatProperties2, TextureLODGatherFormatPropertiesAMD>{ enum { value = true }; };
83672   template <> struct isStructureChainValid<SubmitInfo, TimelineSemaphoreSubmitInfo>{ enum { value = true }; };
83673   template <> struct isStructureChainValid<BindSparseInfo, TimelineSemaphoreSubmitInfo>{ enum { value = true }; };
83674   template <> struct isStructureChainValid<InstanceCreateInfo, ValidationFeaturesEXT>{ enum { value = true }; };
83675   template <> struct isStructureChainValid<InstanceCreateInfo, ValidationFlagsEXT>{ enum { value = true }; };
83676 #ifdef VK_USE_PLATFORM_WIN32_KHR
83677   template <> struct isStructureChainValid<SubmitInfo, Win32KeyedMutexAcquireReleaseInfoKHR>{ enum { value = true }; };
83678 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83679 #ifdef VK_USE_PLATFORM_WIN32_KHR
83680   template <> struct isStructureChainValid<SubmitInfo, Win32KeyedMutexAcquireReleaseInfoNV>{ enum { value = true }; };
83681 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83682   template <> struct isStructureChainValid<WriteDescriptorSet, WriteDescriptorSetAccelerationStructureKHR>{ enum { value = true }; };
83683   template <> struct isStructureChainValid<WriteDescriptorSet, WriteDescriptorSetInlineUniformBlockEXT>{ enum { value = true }; };
83684 
83685 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
83686   class DynamicLoader
83687   {
83688   public:
83689 #ifdef VULKAN_HPP_NO_EXCEPTIONS
DynamicLoader()83690     DynamicLoader() VULKAN_HPP_NOEXCEPT : m_success( false )
83691 #else
83692     DynamicLoader() : m_success( false )
83693 #endif
83694     {
83695 #if defined(__linux__)
83696       m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
83697 #elif defined(__APPLE__)
83698       m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
83699 #elif defined(_WIN32)
83700       m_library = LoadLibrary( TEXT( "vulkan-1.dll" ) );
83701 #else
83702       VULKAN_HPP_ASSERT( false && "unsupported platform" );
83703 #endif
83704 
83705       m_success = m_library != 0;
83706 #ifndef VULKAN_HPP_NO_EXCEPTIONS
83707       if ( !m_success )
83708       {
83709         // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
83710         throw std::runtime_error( "Failed to load vulkan library!" );
83711       }
83712 #endif
83713     }
83714 
83715     DynamicLoader( DynamicLoader const& ) = delete;
83716 
DynamicLoader(DynamicLoader && other)83717     DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
83718       : m_success(other.m_success)
83719       , m_library(other.m_library)
83720     {
83721       other.m_library = nullptr;
83722     }
83723 
83724     DynamicLoader &operator=( DynamicLoader const& ) = delete;
83725 
operator =(DynamicLoader && other)83726     DynamicLoader &operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
83727     {
83728       m_success = other.m_success;
83729       std::swap(m_library, other.m_library);
83730       return *this;
83731     }
83732 
~DynamicLoader()83733     ~DynamicLoader() VULKAN_HPP_NOEXCEPT
83734     {
83735       if ( m_library )
83736       {
83737 #if defined(__linux__) || defined(__APPLE__)
83738         dlclose( m_library );
83739 #elif defined(_WIN32)
83740         FreeLibrary( m_library );
83741 #endif
83742       }
83743     }
83744 
83745     template <typename T>
getProcAddress(const char * function) const83746     T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT
83747     {
83748 #if defined(__linux__) || defined(__APPLE__)
83749       return (T)dlsym( m_library, function );
83750 #elif defined(_WIN32)
83751       return (T)GetProcAddress( m_library, function );
83752 #endif
83753     }
83754 
success() const83755     bool success() const VULKAN_HPP_NOEXCEPT { return m_success; }
83756 
83757   private:
83758     bool m_success;
83759 #if defined(__linux__) || defined(__APPLE__)
83760     void *m_library;
83761 #elif defined(_WIN32)
83762     HMODULE m_library;
83763 #else
83764 #error unsupported platform
83765 #endif
83766   };
83767 #endif
83768 
83769 
83770   class DispatchLoaderDynamic
83771   {
83772   public:
83773     PFN_vkCreateInstance vkCreateInstance = 0;
83774     PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
83775     PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
83776     PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
83777     PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
83778     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
83779     PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
83780     PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
83781     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
83782     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
83783     PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
83784     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
83785     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
83786     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
83787     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
83788     PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
83789     PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
83790     PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
83791     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
83792     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
83793     PFN_vkCmdBlitImage vkCmdBlitImage = 0;
83794 #ifdef VK_ENABLE_BETA_EXTENSIONS
83795     PFN_vkCmdBuildAccelerationStructureIndirectKHR vkCmdBuildAccelerationStructureIndirectKHR = 0;
83796 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83797 #ifdef VK_ENABLE_BETA_EXTENSIONS
83798     PFN_vkCmdBuildAccelerationStructureKHR vkCmdBuildAccelerationStructureKHR = 0;
83799 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83800     PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
83801     PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
83802     PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
83803     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
83804 #ifdef VK_ENABLE_BETA_EXTENSIONS
83805     PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
83806 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83807     PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
83808 #ifdef VK_ENABLE_BETA_EXTENSIONS
83809     PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
83810 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83811     PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
83812     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
83813     PFN_vkCmdCopyImage vkCmdCopyImage = 0;
83814     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
83815 #ifdef VK_ENABLE_BETA_EXTENSIONS
83816     PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
83817 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83818     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
83819     PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
83820     PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
83821     PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
83822     PFN_vkCmdDispatch vkCmdDispatch = 0;
83823     PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
83824     PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
83825     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
83826     PFN_vkCmdDraw vkCmdDraw = 0;
83827     PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
83828     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
83829     PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
83830     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
83831     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
83832     PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
83833     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
83834     PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
83835     PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
83836     PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
83837     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
83838     PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
83839     PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
83840     PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
83841     PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
83842     PFN_vkCmdEndQuery vkCmdEndQuery = 0;
83843     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
83844     PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
83845     PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
83846     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
83847     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
83848     PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
83849     PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
83850     PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
83851     PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
83852     PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
83853     PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
83854     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
83855     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
83856     PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
83857     PFN_vkCmdPushConstants vkCmdPushConstants = 0;
83858     PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
83859     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
83860     PFN_vkCmdResetEvent vkCmdResetEvent = 0;
83861     PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
83862     PFN_vkCmdResolveImage vkCmdResolveImage = 0;
83863     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
83864     PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
83865     PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
83866     PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
83867     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
83868     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
83869     PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
83870     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
83871     PFN_vkCmdSetEvent vkCmdSetEvent = 0;
83872     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
83873     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
83874     PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
83875     PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
83876     PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
83877     PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
83878     PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
83879     PFN_vkCmdSetScissor vkCmdSetScissor = 0;
83880     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
83881     PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
83882     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
83883     PFN_vkCmdSetViewport vkCmdSetViewport = 0;
83884     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
83885     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
83886 #ifdef VK_ENABLE_BETA_EXTENSIONS
83887     PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
83888 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83889 #ifdef VK_ENABLE_BETA_EXTENSIONS
83890     PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
83891 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83892     PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
83893     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
83894     PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
83895     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
83896     PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
83897     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
83898     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
83899     PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
83900     PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
83901 #ifdef VK_USE_PLATFORM_WIN32_KHR
83902     PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
83903 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83904     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
83905     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
83906     PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
83907     PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
83908     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
83909     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
83910     PFN_vkAllocateMemory vkAllocateMemory = 0;
83911     PFN_vkBindAccelerationStructureMemoryKHR vkBindAccelerationStructureMemoryKHR = 0;
83912     PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
83913     PFN_vkBindBufferMemory vkBindBufferMemory = 0;
83914     PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
83915     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
83916     PFN_vkBindImageMemory vkBindImageMemory = 0;
83917     PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
83918     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
83919 #ifdef VK_ENABLE_BETA_EXTENSIONS
83920     PFN_vkBuildAccelerationStructureKHR vkBuildAccelerationStructureKHR = 0;
83921 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83922     PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
83923 #ifdef VK_ENABLE_BETA_EXTENSIONS
83924     PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
83925 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83926 #ifdef VK_ENABLE_BETA_EXTENSIONS
83927     PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
83928 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83929 #ifdef VK_ENABLE_BETA_EXTENSIONS
83930     PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
83931 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83932 #ifdef VK_ENABLE_BETA_EXTENSIONS
83933     PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
83934 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83935     PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
83936     PFN_vkCreateBuffer vkCreateBuffer = 0;
83937     PFN_vkCreateBufferView vkCreateBufferView = 0;
83938     PFN_vkCreateCommandPool vkCreateCommandPool = 0;
83939     PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
83940 #ifdef VK_ENABLE_BETA_EXTENSIONS
83941     PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
83942 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83943     PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
83944     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
83945     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
83946     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
83947     PFN_vkCreateEvent vkCreateEvent = 0;
83948     PFN_vkCreateFence vkCreateFence = 0;
83949     PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
83950     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
83951     PFN_vkCreateImage vkCreateImage = 0;
83952     PFN_vkCreateImageView vkCreateImageView = 0;
83953     PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
83954     PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
83955     PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
83956     PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
83957     PFN_vkCreateQueryPool vkCreateQueryPool = 0;
83958 #ifdef VK_ENABLE_BETA_EXTENSIONS
83959     PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
83960 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83961     PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
83962     PFN_vkCreateRenderPass vkCreateRenderPass = 0;
83963     PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
83964     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
83965     PFN_vkCreateSampler vkCreateSampler = 0;
83966     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
83967     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
83968     PFN_vkCreateSemaphore vkCreateSemaphore = 0;
83969     PFN_vkCreateShaderModule vkCreateShaderModule = 0;
83970     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
83971     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
83972     PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
83973     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
83974     PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
83975 #ifdef VK_ENABLE_BETA_EXTENSIONS
83976     PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
83977 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83978     PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
83979     PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
83980     PFN_vkDestroyBuffer vkDestroyBuffer = 0;
83981     PFN_vkDestroyBufferView vkDestroyBufferView = 0;
83982     PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
83983 #ifdef VK_ENABLE_BETA_EXTENSIONS
83984     PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
83985 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83986     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
83987     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
83988     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
83989     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
83990     PFN_vkDestroyDevice vkDestroyDevice = 0;
83991     PFN_vkDestroyEvent vkDestroyEvent = 0;
83992     PFN_vkDestroyFence vkDestroyFence = 0;
83993     PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
83994     PFN_vkDestroyImage vkDestroyImage = 0;
83995     PFN_vkDestroyImageView vkDestroyImageView = 0;
83996     PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
83997     PFN_vkDestroyPipeline vkDestroyPipeline = 0;
83998     PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
83999     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
84000     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
84001     PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
84002     PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
84003     PFN_vkDestroySampler vkDestroySampler = 0;
84004     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
84005     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
84006     PFN_vkDestroySemaphore vkDestroySemaphore = 0;
84007     PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
84008     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
84009     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
84010     PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
84011     PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
84012     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
84013     PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
84014     PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
84015     PFN_vkFreeMemory vkFreeMemory = 0;
84016 #ifdef VK_ENABLE_BETA_EXTENSIONS
84017     PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
84018 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84019     PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
84020 #ifdef VK_ENABLE_BETA_EXTENSIONS
84021     PFN_vkGetAccelerationStructureMemoryRequirementsKHR vkGetAccelerationStructureMemoryRequirementsKHR = 0;
84022 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84023     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
84024 #ifdef VK_USE_PLATFORM_ANDROID_KHR
84025     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
84026 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
84027     PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
84028     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
84029     PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
84030     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
84031     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
84032     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
84033     PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
84034     PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
84035     PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
84036 #ifdef VK_ENABLE_BETA_EXTENSIONS
84037     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
84038 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84039 #ifdef VK_ENABLE_BETA_EXTENSIONS
84040     PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
84041 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84042     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
84043     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
84044 #ifdef VK_ENABLE_BETA_EXTENSIONS
84045     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
84046 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84047     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
84048     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
84049     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
84050 #ifdef VK_USE_PLATFORM_WIN32_KHR
84051     PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
84052 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84053     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
84054     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
84055     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
84056     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
84057     PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
84058     PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
84059     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
84060     PFN_vkGetEventStatus vkGetEventStatus = 0;
84061     PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
84062     PFN_vkGetFenceStatus vkGetFenceStatus = 0;
84063 #ifdef VK_USE_PLATFORM_WIN32_KHR
84064     PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
84065 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84066     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
84067     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
84068     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
84069     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
84070     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
84071     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
84072     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
84073     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
84074     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
84075     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
84076     PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
84077 #ifdef VK_USE_PLATFORM_ANDROID_KHR
84078     PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
84079 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
84080     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
84081     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
84082     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
84083 #ifdef VK_USE_PLATFORM_WIN32_KHR
84084     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
84085 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84086 #ifdef VK_USE_PLATFORM_WIN32_KHR
84087     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
84088 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84089 #ifdef VK_USE_PLATFORM_WIN32_KHR
84090     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
84091 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84092     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
84093     PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
84094     PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
84095     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
84096     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
84097     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
84098     PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
84099     PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
84100 #ifdef VK_ENABLE_BETA_EXTENSIONS
84101     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
84102 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84103     PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
84104     PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
84105     PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
84106     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
84107     PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
84108     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
84109     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
84110 #ifdef VK_USE_PLATFORM_WIN32_KHR
84111     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
84112 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84113     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
84114     PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
84115     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
84116     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
84117     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
84118     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
84119 #ifdef VK_USE_PLATFORM_WIN32_KHR
84120     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
84121 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84122     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
84123 #ifdef VK_USE_PLATFORM_WIN32_KHR
84124     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
84125 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84126     PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
84127     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
84128     PFN_vkMapMemory vkMapMemory = 0;
84129     PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
84130     PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
84131     PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
84132     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
84133 #ifdef VK_USE_PLATFORM_WIN32_KHR
84134     PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
84135 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84136     PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
84137     PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
84138     PFN_vkResetCommandPool vkResetCommandPool = 0;
84139     PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
84140     PFN_vkResetEvent vkResetEvent = 0;
84141     PFN_vkResetFences vkResetFences = 0;
84142     PFN_vkResetQueryPool vkResetQueryPool = 0;
84143     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
84144     PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
84145     PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
84146     PFN_vkSetEvent vkSetEvent = 0;
84147     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
84148     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
84149     PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
84150     PFN_vkSignalSemaphore vkSignalSemaphore = 0;
84151     PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
84152     PFN_vkTrimCommandPool vkTrimCommandPool = 0;
84153     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
84154     PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
84155     PFN_vkUnmapMemory vkUnmapMemory = 0;
84156     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
84157     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
84158     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
84159     PFN_vkWaitForFences vkWaitForFences = 0;
84160     PFN_vkWaitSemaphores vkWaitSemaphores = 0;
84161     PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
84162 #ifdef VK_ENABLE_BETA_EXTENSIONS
84163     PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
84164 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84165 #ifdef VK_USE_PLATFORM_ANDROID_KHR
84166     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
84167 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
84168     PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
84169     PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
84170     PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
84171     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
84172 #ifdef VK_USE_PLATFORM_IOS_MVK
84173     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
84174 #endif /*VK_USE_PLATFORM_IOS_MVK*/
84175 #ifdef VK_USE_PLATFORM_FUCHSIA
84176     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
84177 #endif /*VK_USE_PLATFORM_FUCHSIA*/
84178 #ifdef VK_USE_PLATFORM_MACOS_MVK
84179     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
84180 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
84181 #ifdef VK_USE_PLATFORM_METAL_EXT
84182     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
84183 #endif /*VK_USE_PLATFORM_METAL_EXT*/
84184 #ifdef VK_USE_PLATFORM_GGP
84185     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
84186 #endif /*VK_USE_PLATFORM_GGP*/
84187 #ifdef VK_USE_PLATFORM_VI_NN
84188     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
84189 #endif /*VK_USE_PLATFORM_VI_NN*/
84190 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
84191     PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
84192 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
84193 #ifdef VK_USE_PLATFORM_WIN32_KHR
84194     PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
84195 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84196 #ifdef VK_USE_PLATFORM_XCB_KHR
84197     PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
84198 #endif /*VK_USE_PLATFORM_XCB_KHR*/
84199 #ifdef VK_USE_PLATFORM_XLIB_KHR
84200     PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
84201 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
84202     PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
84203     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
84204     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
84205     PFN_vkDestroyInstance vkDestroyInstance = 0;
84206     PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
84207     PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
84208     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
84209     PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
84210     PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
84211     PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
84212 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
84213     PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
84214 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
84215     PFN_vkCreateDevice vkCreateDevice = 0;
84216     PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
84217     PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
84218     PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
84219     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
84220     PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
84221     PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
84222     PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
84223     PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
84224     PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
84225     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
84226     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
84227     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
84228     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
84229     PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
84230     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
84231     PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
84232     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
84233     PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
84234     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
84235     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
84236     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
84237     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
84238     PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
84239     PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
84240     PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
84241     PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
84242     PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
84243     PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
84244     PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
84245     PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
84246     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
84247     PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
84248     PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
84249     PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
84250     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
84251     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
84252     PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
84253     PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
84254     PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
84255     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
84256     PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
84257     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
84258     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
84259     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
84260     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
84261     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
84262     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
84263     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
84264     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
84265     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
84266     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
84267     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
84268 #ifdef VK_USE_PLATFORM_WIN32_KHR
84269     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
84270 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84271     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
84272     PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
84273     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
84274 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
84275     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
84276 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
84277 #ifdef VK_USE_PLATFORM_WIN32_KHR
84278     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
84279 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84280 #ifdef VK_USE_PLATFORM_XCB_KHR
84281     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
84282 #endif /*VK_USE_PLATFORM_XCB_KHR*/
84283 #ifdef VK_USE_PLATFORM_XLIB_KHR
84284     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
84285 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
84286 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
84287     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
84288 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
84289     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
84290     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
84291     PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
84292     PFN_vkQueueBindSparse vkQueueBindSparse = 0;
84293     PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
84294     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
84295     PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
84296     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
84297     PFN_vkQueueSubmit vkQueueSubmit = 0;
84298     PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
84299 
84300   public:
84301     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
84302 
84303 #if !defined(VK_NO_PROTOTYPES)
84304     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
84305     template <typename DynamicLoader>
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device,DynamicLoader const & dl)84306     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device, DynamicLoader const& dl) VULKAN_HPP_NOEXCEPT
84307     {
84308       PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
84309       PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>("vkGetDeviceProcAddr");
84310       init(static_cast<VkInstance>(instance), getInstanceProcAddr, static_cast<VkDevice>(device), device ? getDeviceProcAddr : nullptr);
84311     }
84312 
84313     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
84314     template <typename DynamicLoader
84315 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
84316       = vk::DynamicLoader
84317 #endif
84318     >
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device)84319     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT
84320     {
84321       static DynamicLoader dl;
84322       init(instance, device, dl);
84323     }
84324 #endif // !defined(VK_NO_PROTOTYPES)
84325 
DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr)84326     DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT
84327     {
84328       init(getInstanceProcAddr);
84329     }
84330 
init(PFN_vkGetInstanceProcAddr getInstanceProcAddr)84331     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
84332     {
84333       VULKAN_HPP_ASSERT(getInstanceProcAddr);
84334 
84335       vkGetInstanceProcAddr = getInstanceProcAddr;
84336       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
84337       vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
84338       vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
84339       vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
84340     }
84341 
84342     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)84343     DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
84344     {
84345       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
84346     }
84347 
84348     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr=nullptr)84349     void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
84350     {
84351       VULKAN_HPP_ASSERT(instance && getInstanceProcAddr);
84352       vkGetInstanceProcAddr = getInstanceProcAddr;
84353       init( VULKAN_HPP_NAMESPACE::Instance(instance) );
84354       if (device) {
84355         init( VULKAN_HPP_NAMESPACE::Device(device) );
84356       }
84357     }
84358 
init(VULKAN_HPP_NAMESPACE::Instance instanceCpp)84359     void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
84360     {
84361       VkInstance instance = static_cast<VkInstance>(instanceCpp);
84362 #ifdef VK_USE_PLATFORM_ANDROID_KHR
84363       vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
84364 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
84365       vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
84366       vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
84367       vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
84368       vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
84369 #ifdef VK_USE_PLATFORM_IOS_MVK
84370       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
84371 #endif /*VK_USE_PLATFORM_IOS_MVK*/
84372 #ifdef VK_USE_PLATFORM_FUCHSIA
84373       vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
84374 #endif /*VK_USE_PLATFORM_FUCHSIA*/
84375 #ifdef VK_USE_PLATFORM_MACOS_MVK
84376       vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
84377 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
84378 #ifdef VK_USE_PLATFORM_METAL_EXT
84379       vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
84380 #endif /*VK_USE_PLATFORM_METAL_EXT*/
84381 #ifdef VK_USE_PLATFORM_GGP
84382       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
84383 #endif /*VK_USE_PLATFORM_GGP*/
84384 #ifdef VK_USE_PLATFORM_VI_NN
84385       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
84386 #endif /*VK_USE_PLATFORM_VI_NN*/
84387 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
84388       vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
84389 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
84390 #ifdef VK_USE_PLATFORM_WIN32_KHR
84391       vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
84392 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84393 #ifdef VK_USE_PLATFORM_XCB_KHR
84394       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
84395 #endif /*VK_USE_PLATFORM_XCB_KHR*/
84396 #ifdef VK_USE_PLATFORM_XLIB_KHR
84397       vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
84398 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
84399       vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
84400       vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
84401       vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
84402       vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
84403       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
84404       vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
84405       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
84406       vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
84407       vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
84408 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
84409       vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
84410 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
84411       vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
84412       vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
84413       vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
84414       vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
84415       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
84416       vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
84417       vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
84418       vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
84419       vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
84420       vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
84421       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
84422       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
84423       vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
84424       vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
84425       vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
84426       vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
84427       vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
84428       vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
84429       vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
84430       vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
84431       vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
84432       vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
84433       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
84434       vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
84435       vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
84436       vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
84437       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
84438       vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
84439       vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
84440       vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
84441       vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
84442       vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
84443       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
84444       vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
84445       vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
84446       vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
84447       vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
84448       vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
84449       vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
84450       vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
84451       vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
84452       vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
84453       vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
84454       vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
84455       vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
84456       vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
84457       vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
84458       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
84459       vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
84460       vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
84461       vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
84462       vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
84463       vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
84464 #ifdef VK_USE_PLATFORM_WIN32_KHR
84465       vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
84466 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84467       vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
84468       vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
84469       vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
84470 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
84471       vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
84472 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
84473 #ifdef VK_USE_PLATFORM_WIN32_KHR
84474       vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
84475 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84476 #ifdef VK_USE_PLATFORM_XCB_KHR
84477       vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
84478 #endif /*VK_USE_PLATFORM_XCB_KHR*/
84479 #ifdef VK_USE_PLATFORM_XLIB_KHR
84480       vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
84481 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
84482 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
84483       vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
84484 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
84485       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
84486       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
84487       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
84488       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
84489       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
84490       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
84491       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
84492       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
84493       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
84494       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
84495       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
84496       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
84497       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
84498       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
84499       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
84500       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
84501       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
84502       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
84503 #ifdef VK_ENABLE_BETA_EXTENSIONS
84504       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
84505 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84506 #ifdef VK_ENABLE_BETA_EXTENSIONS
84507       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureKHR" ) );
84508 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84509       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
84510       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
84511       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
84512       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
84513 #ifdef VK_ENABLE_BETA_EXTENSIONS
84514       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
84515 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84516       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
84517 #ifdef VK_ENABLE_BETA_EXTENSIONS
84518       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
84519 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84520       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
84521       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
84522       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
84523       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
84524 #ifdef VK_ENABLE_BETA_EXTENSIONS
84525       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
84526 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84527       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
84528       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
84529       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
84530       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
84531       vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
84532       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
84533       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
84534       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
84535       vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
84536       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
84537       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
84538       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
84539       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
84540       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
84541       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
84542       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
84543       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
84544       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
84545       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
84546       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
84547       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
84548       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
84549       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
84550       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
84551       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
84552       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
84553       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
84554       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
84555       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
84556       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
84557       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
84558       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
84559       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
84560       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
84561       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
84562       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
84563       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
84564       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
84565       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
84566       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
84567       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
84568       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
84569       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
84570       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
84571       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
84572       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
84573       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
84574       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
84575       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
84576       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
84577       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
84578       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
84579       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
84580       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
84581       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
84582       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
84583       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
84584       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
84585       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
84586       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
84587       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
84588       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
84589       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
84590       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
84591       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
84592       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
84593       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
84594       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
84595 #ifdef VK_ENABLE_BETA_EXTENSIONS
84596       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
84597 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84598 #ifdef VK_ENABLE_BETA_EXTENSIONS
84599       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
84600 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84601       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
84602       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
84603       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
84604       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
84605       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
84606       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
84607       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
84608       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
84609       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
84610 #ifdef VK_USE_PLATFORM_WIN32_KHR
84611       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
84612 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84613       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
84614       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
84615       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
84616       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
84617       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
84618       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
84619       vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
84620       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryKHR" ) );
84621       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
84622       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
84623       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
84624       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
84625       vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
84626       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
84627       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
84628 #ifdef VK_ENABLE_BETA_EXTENSIONS
84629       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructureKHR" ) );
84630 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84631       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
84632 #ifdef VK_ENABLE_BETA_EXTENSIONS
84633       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
84634 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84635 #ifdef VK_ENABLE_BETA_EXTENSIONS
84636       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
84637 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84638 #ifdef VK_ENABLE_BETA_EXTENSIONS
84639       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
84640 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84641 #ifdef VK_ENABLE_BETA_EXTENSIONS
84642       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
84643 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84644       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
84645       vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
84646       vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
84647       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
84648       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
84649 #ifdef VK_ENABLE_BETA_EXTENSIONS
84650       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
84651 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84652       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
84653       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
84654       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
84655       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
84656       vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
84657       vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
84658       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
84659       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
84660       vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
84661       vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
84662       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
84663       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
84664       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
84665       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
84666       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
84667 #ifdef VK_ENABLE_BETA_EXTENSIONS
84668       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
84669 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84670       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
84671       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
84672       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
84673       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
84674       vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
84675       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
84676       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
84677       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
84678       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
84679       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
84680       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
84681       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
84682       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
84683       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
84684 #ifdef VK_ENABLE_BETA_EXTENSIONS
84685       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
84686 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84687       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
84688       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
84689       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
84690       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
84691       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
84692 #ifdef VK_ENABLE_BETA_EXTENSIONS
84693       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
84694 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84695       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
84696       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
84697       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
84698       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
84699       vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
84700       vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
84701       vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
84702       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
84703       vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
84704       vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
84705       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
84706       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
84707       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
84708       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
84709       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
84710       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
84711       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
84712       vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
84713       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
84714       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
84715       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
84716       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
84717       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
84718       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
84719       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
84720       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
84721       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
84722       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
84723       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
84724       vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
84725 #ifdef VK_ENABLE_BETA_EXTENSIONS
84726       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
84727 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84728       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
84729 #ifdef VK_ENABLE_BETA_EXTENSIONS
84730       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
84731 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84732       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
84733 #ifdef VK_USE_PLATFORM_ANDROID_KHR
84734       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
84735 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
84736       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
84737       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
84738       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
84739       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
84740       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
84741       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
84742       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
84743       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
84744       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
84745 #ifdef VK_ENABLE_BETA_EXTENSIONS
84746       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
84747 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84748 #ifdef VK_ENABLE_BETA_EXTENSIONS
84749       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
84750 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84751       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
84752       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
84753 #ifdef VK_ENABLE_BETA_EXTENSIONS
84754       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
84755 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84756       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
84757       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
84758       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
84759 #ifdef VK_USE_PLATFORM_WIN32_KHR
84760       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
84761 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84762       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
84763       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
84764       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
84765       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
84766       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
84767       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
84768       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
84769       vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
84770       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
84771       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
84772 #ifdef VK_USE_PLATFORM_WIN32_KHR
84773       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
84774 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84775       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
84776       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
84777       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
84778       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
84779       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
84780       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
84781       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
84782       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
84783       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
84784       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
84785       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
84786 #ifdef VK_USE_PLATFORM_ANDROID_KHR
84787       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
84788 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
84789       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
84790       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
84791       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
84792 #ifdef VK_USE_PLATFORM_WIN32_KHR
84793       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
84794 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84795 #ifdef VK_USE_PLATFORM_WIN32_KHR
84796       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
84797 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84798 #ifdef VK_USE_PLATFORM_WIN32_KHR
84799       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
84800 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84801       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
84802       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
84803       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
84804       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
84805       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
84806       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
84807       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
84808       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
84809 #ifdef VK_ENABLE_BETA_EXTENSIONS
84810       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
84811 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84812       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
84813       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
84814       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
84815       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
84816       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
84817       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
84818       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
84819 #ifdef VK_USE_PLATFORM_WIN32_KHR
84820       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
84821 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84822       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
84823       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
84824       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
84825       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
84826       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
84827       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
84828 #ifdef VK_USE_PLATFORM_WIN32_KHR
84829       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
84830 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84831       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
84832 #ifdef VK_USE_PLATFORM_WIN32_KHR
84833       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
84834 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84835       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
84836       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
84837       vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
84838       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
84839       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
84840       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
84841       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
84842 #ifdef VK_USE_PLATFORM_WIN32_KHR
84843       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
84844 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
84845       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
84846       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
84847       vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
84848       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
84849       vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
84850       vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
84851       vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
84852       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
84853       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
84854       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
84855       vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
84856       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
84857       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
84858       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
84859       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
84860       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
84861       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
84862       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
84863       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
84864       vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
84865       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
84866       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
84867       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
84868       vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
84869       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
84870       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
84871 #ifdef VK_ENABLE_BETA_EXTENSIONS
84872       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
84873 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84874       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
84875       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
84876       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
84877       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
84878       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
84879       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
84880       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
84881       vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
84882       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
84883     }
84884 
init(VULKAN_HPP_NAMESPACE::Device deviceCpp)84885     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
84886     {
84887       VkDevice device = static_cast<VkDevice>(deviceCpp);
84888       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
84889       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
84890       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
84891       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
84892       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
84893       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
84894       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
84895       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
84896       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
84897       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
84898       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
84899       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
84900       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
84901       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
84902       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
84903       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
84904       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
84905 #ifdef VK_ENABLE_BETA_EXTENSIONS
84906       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
84907 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84908 #ifdef VK_ENABLE_BETA_EXTENSIONS
84909       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureKHR" ) );
84910 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84911       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
84912       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
84913       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
84914       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
84915 #ifdef VK_ENABLE_BETA_EXTENSIONS
84916       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
84917 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84918       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
84919 #ifdef VK_ENABLE_BETA_EXTENSIONS
84920       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
84921 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84922       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
84923       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
84924       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
84925       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
84926 #ifdef VK_ENABLE_BETA_EXTENSIONS
84927       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
84928 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84929       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
84930       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
84931       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
84932       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
84933       vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
84934       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
84935       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
84936       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
84937       vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
84938       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
84939       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
84940       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
84941       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
84942       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
84943       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
84944       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
84945       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
84946       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
84947       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
84948       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
84949       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
84950       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
84951       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
84952       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
84953       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
84954       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
84955       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
84956       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
84957       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
84958       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
84959       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
84960       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
84961       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
84962       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
84963       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
84964       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
84965       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
84966       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
84967       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
84968       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
84969       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
84970       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
84971       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
84972       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
84973       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
84974       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
84975       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
84976       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
84977       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
84978       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
84979       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
84980       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
84981       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
84982       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
84983       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
84984       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
84985       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
84986       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
84987       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
84988       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
84989       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
84990       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
84991       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
84992       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
84993       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
84994       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
84995       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
84996       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
84997 #ifdef VK_ENABLE_BETA_EXTENSIONS
84998       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
84999 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85000 #ifdef VK_ENABLE_BETA_EXTENSIONS
85001       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
85002 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85003       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
85004       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
85005       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
85006       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
85007       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
85008       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
85009       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
85010       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
85011       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
85012 #ifdef VK_USE_PLATFORM_WIN32_KHR
85013       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
85014 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85015       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
85016       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
85017       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
85018       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
85019       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
85020       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
85021       vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
85022       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryKHR" ) );
85023       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
85024       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
85025       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
85026       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
85027       vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
85028       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
85029       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
85030 #ifdef VK_ENABLE_BETA_EXTENSIONS
85031       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructureKHR" ) );
85032 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85033       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
85034 #ifdef VK_ENABLE_BETA_EXTENSIONS
85035       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
85036 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85037 #ifdef VK_ENABLE_BETA_EXTENSIONS
85038       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
85039 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85040 #ifdef VK_ENABLE_BETA_EXTENSIONS
85041       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
85042 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85043 #ifdef VK_ENABLE_BETA_EXTENSIONS
85044       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
85045 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85046       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
85047       vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
85048       vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
85049       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
85050       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
85051 #ifdef VK_ENABLE_BETA_EXTENSIONS
85052       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
85053 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85054       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
85055       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
85056       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
85057       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
85058       vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
85059       vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
85060       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
85061       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
85062       vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
85063       vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
85064       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
85065       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
85066       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
85067       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
85068       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
85069 #ifdef VK_ENABLE_BETA_EXTENSIONS
85070       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
85071 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85072       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
85073       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
85074       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
85075       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
85076       vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
85077       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
85078       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
85079       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
85080       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
85081       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
85082       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
85083       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
85084       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
85085       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
85086 #ifdef VK_ENABLE_BETA_EXTENSIONS
85087       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
85088 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85089       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
85090       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
85091       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
85092       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
85093       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
85094 #ifdef VK_ENABLE_BETA_EXTENSIONS
85095       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
85096 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85097       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
85098       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
85099       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
85100       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
85101       vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
85102       vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
85103       vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
85104       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
85105       vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
85106       vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
85107       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
85108       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
85109       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
85110       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
85111       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
85112       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
85113       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
85114       vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
85115       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
85116       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
85117       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
85118       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
85119       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
85120       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
85121       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
85122       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
85123       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
85124       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
85125       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
85126       vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
85127 #ifdef VK_ENABLE_BETA_EXTENSIONS
85128       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
85129 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85130       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
85131 #ifdef VK_ENABLE_BETA_EXTENSIONS
85132       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
85133 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85134       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
85135 #ifdef VK_USE_PLATFORM_ANDROID_KHR
85136       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
85137 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
85138       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
85139       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
85140       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
85141       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
85142       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
85143       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
85144       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
85145       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
85146       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
85147 #ifdef VK_ENABLE_BETA_EXTENSIONS
85148       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
85149 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85150 #ifdef VK_ENABLE_BETA_EXTENSIONS
85151       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
85152 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85153       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
85154       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
85155 #ifdef VK_ENABLE_BETA_EXTENSIONS
85156       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
85157 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85158       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
85159       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
85160       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
85161 #ifdef VK_USE_PLATFORM_WIN32_KHR
85162       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
85163 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85164       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
85165       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
85166       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
85167       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
85168       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
85169       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
85170       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
85171       vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
85172       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
85173       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
85174 #ifdef VK_USE_PLATFORM_WIN32_KHR
85175       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
85176 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85177       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
85178       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
85179       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
85180       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
85181       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
85182       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
85183       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
85184       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
85185       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
85186       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
85187       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
85188 #ifdef VK_USE_PLATFORM_ANDROID_KHR
85189       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
85190 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
85191       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
85192       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
85193       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
85194 #ifdef VK_USE_PLATFORM_WIN32_KHR
85195       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
85196 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85197 #ifdef VK_USE_PLATFORM_WIN32_KHR
85198       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
85199 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85200 #ifdef VK_USE_PLATFORM_WIN32_KHR
85201       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
85202 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85203       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
85204       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
85205       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
85206       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
85207       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
85208       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
85209       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
85210       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
85211 #ifdef VK_ENABLE_BETA_EXTENSIONS
85212       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
85213 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85214       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
85215       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
85216       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
85217       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
85218       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
85219       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
85220       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
85221 #ifdef VK_USE_PLATFORM_WIN32_KHR
85222       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
85223 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85224       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
85225       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
85226       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
85227       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
85228       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
85229       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
85230 #ifdef VK_USE_PLATFORM_WIN32_KHR
85231       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
85232 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85233       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
85234 #ifdef VK_USE_PLATFORM_WIN32_KHR
85235       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
85236 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85237       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
85238       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
85239       vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
85240       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
85241       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
85242       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
85243       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
85244 #ifdef VK_USE_PLATFORM_WIN32_KHR
85245       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
85246 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85247       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
85248       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
85249       vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
85250       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
85251       vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
85252       vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
85253       vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
85254       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
85255       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
85256       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
85257       vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
85258       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
85259       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
85260       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
85261       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
85262       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
85263       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
85264       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
85265       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
85266       vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
85267       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
85268       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
85269       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
85270       vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
85271       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
85272       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
85273 #ifdef VK_ENABLE_BETA_EXTENSIONS
85274       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
85275 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85276       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
85277       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
85278       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
85279       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
85280       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
85281       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
85282       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
85283       vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
85284       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
85285     }
85286   };
85287 
85288 } // namespace VULKAN_HPP_NAMESPACE
85289 
85290 namespace std
85291 {
85292 
85293   template <> struct hash<vk::AccelerationStructureKHR>
85294   {
operator ()std::hash85295     std::size_t operator()(vk::AccelerationStructureKHR const& accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT
85296     {
85297       return std::hash<VkAccelerationStructureKHR>{}(static_cast<VkAccelerationStructureKHR>(accelerationStructureKHR));
85298     }
85299   };
85300 
85301   template <> struct hash<vk::Buffer>
85302   {
operator ()std::hash85303     std::size_t operator()(vk::Buffer const& buffer) const VULKAN_HPP_NOEXCEPT
85304     {
85305       return std::hash<VkBuffer>{}(static_cast<VkBuffer>(buffer));
85306     }
85307   };
85308 
85309   template <> struct hash<vk::BufferView>
85310   {
operator ()std::hash85311     std::size_t operator()(vk::BufferView const& bufferView) const VULKAN_HPP_NOEXCEPT
85312     {
85313       return std::hash<VkBufferView>{}(static_cast<VkBufferView>(bufferView));
85314     }
85315   };
85316 
85317   template <> struct hash<vk::CommandBuffer>
85318   {
operator ()std::hash85319     std::size_t operator()(vk::CommandBuffer const& commandBuffer) const VULKAN_HPP_NOEXCEPT
85320     {
85321       return std::hash<VkCommandBuffer>{}(static_cast<VkCommandBuffer>(commandBuffer));
85322     }
85323   };
85324 
85325   template <> struct hash<vk::CommandPool>
85326   {
operator ()std::hash85327     std::size_t operator()(vk::CommandPool const& commandPool) const VULKAN_HPP_NOEXCEPT
85328     {
85329       return std::hash<VkCommandPool>{}(static_cast<VkCommandPool>(commandPool));
85330     }
85331   };
85332 
85333   template <> struct hash<vk::DebugReportCallbackEXT>
85334   {
operator ()std::hash85335     std::size_t operator()(vk::DebugReportCallbackEXT const& debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT
85336     {
85337       return std::hash<VkDebugReportCallbackEXT>{}(static_cast<VkDebugReportCallbackEXT>(debugReportCallbackEXT));
85338     }
85339   };
85340 
85341   template <> struct hash<vk::DebugUtilsMessengerEXT>
85342   {
operator ()std::hash85343     std::size_t operator()(vk::DebugUtilsMessengerEXT const& debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT
85344     {
85345       return std::hash<VkDebugUtilsMessengerEXT>{}(static_cast<VkDebugUtilsMessengerEXT>(debugUtilsMessengerEXT));
85346     }
85347   };
85348 
85349 #ifdef VK_ENABLE_BETA_EXTENSIONS
85350   template <> struct hash<vk::DeferredOperationKHR>
85351   {
operator ()std::hash85352     std::size_t operator()(vk::DeferredOperationKHR const& deferredOperationKHR) const VULKAN_HPP_NOEXCEPT
85353     {
85354       return std::hash<VkDeferredOperationKHR>{}(static_cast<VkDeferredOperationKHR>(deferredOperationKHR));
85355     }
85356   };
85357 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85358 
85359   template <> struct hash<vk::DescriptorPool>
85360   {
operator ()std::hash85361     std::size_t operator()(vk::DescriptorPool const& descriptorPool) const VULKAN_HPP_NOEXCEPT
85362     {
85363       return std::hash<VkDescriptorPool>{}(static_cast<VkDescriptorPool>(descriptorPool));
85364     }
85365   };
85366 
85367   template <> struct hash<vk::DescriptorSet>
85368   {
operator ()std::hash85369     std::size_t operator()(vk::DescriptorSet const& descriptorSet) const VULKAN_HPP_NOEXCEPT
85370     {
85371       return std::hash<VkDescriptorSet>{}(static_cast<VkDescriptorSet>(descriptorSet));
85372     }
85373   };
85374 
85375   template <> struct hash<vk::DescriptorSetLayout>
85376   {
operator ()std::hash85377     std::size_t operator()(vk::DescriptorSetLayout const& descriptorSetLayout) const VULKAN_HPP_NOEXCEPT
85378     {
85379       return std::hash<VkDescriptorSetLayout>{}(static_cast<VkDescriptorSetLayout>(descriptorSetLayout));
85380     }
85381   };
85382 
85383   template <> struct hash<vk::DescriptorUpdateTemplate>
85384   {
operator ()std::hash85385     std::size_t operator()(vk::DescriptorUpdateTemplate const& descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT
85386     {
85387       return std::hash<VkDescriptorUpdateTemplate>{}(static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate));
85388     }
85389   };
85390 
85391   template <> struct hash<vk::Device>
85392   {
operator ()std::hash85393     std::size_t operator()(vk::Device const& device) const VULKAN_HPP_NOEXCEPT
85394     {
85395       return std::hash<VkDevice>{}(static_cast<VkDevice>(device));
85396     }
85397   };
85398 
85399   template <> struct hash<vk::DeviceMemory>
85400   {
operator ()std::hash85401     std::size_t operator()(vk::DeviceMemory const& deviceMemory) const VULKAN_HPP_NOEXCEPT
85402     {
85403       return std::hash<VkDeviceMemory>{}(static_cast<VkDeviceMemory>(deviceMemory));
85404     }
85405   };
85406 
85407   template <> struct hash<vk::DisplayKHR>
85408   {
operator ()std::hash85409     std::size_t operator()(vk::DisplayKHR const& displayKHR) const VULKAN_HPP_NOEXCEPT
85410     {
85411       return std::hash<VkDisplayKHR>{}(static_cast<VkDisplayKHR>(displayKHR));
85412     }
85413   };
85414 
85415   template <> struct hash<vk::DisplayModeKHR>
85416   {
operator ()std::hash85417     std::size_t operator()(vk::DisplayModeKHR const& displayModeKHR) const VULKAN_HPP_NOEXCEPT
85418     {
85419       return std::hash<VkDisplayModeKHR>{}(static_cast<VkDisplayModeKHR>(displayModeKHR));
85420     }
85421   };
85422 
85423   template <> struct hash<vk::Event>
85424   {
operator ()std::hash85425     std::size_t operator()(vk::Event const& event) const VULKAN_HPP_NOEXCEPT
85426     {
85427       return std::hash<VkEvent>{}(static_cast<VkEvent>(event));
85428     }
85429   };
85430 
85431   template <> struct hash<vk::Fence>
85432   {
operator ()std::hash85433     std::size_t operator()(vk::Fence const& fence) const VULKAN_HPP_NOEXCEPT
85434     {
85435       return std::hash<VkFence>{}(static_cast<VkFence>(fence));
85436     }
85437   };
85438 
85439   template <> struct hash<vk::Framebuffer>
85440   {
operator ()std::hash85441     std::size_t operator()(vk::Framebuffer const& framebuffer) const VULKAN_HPP_NOEXCEPT
85442     {
85443       return std::hash<VkFramebuffer>{}(static_cast<VkFramebuffer>(framebuffer));
85444     }
85445   };
85446 
85447   template <> struct hash<vk::Image>
85448   {
operator ()std::hash85449     std::size_t operator()(vk::Image const& image) const VULKAN_HPP_NOEXCEPT
85450     {
85451       return std::hash<VkImage>{}(static_cast<VkImage>(image));
85452     }
85453   };
85454 
85455   template <> struct hash<vk::ImageView>
85456   {
operator ()std::hash85457     std::size_t operator()(vk::ImageView const& imageView) const VULKAN_HPP_NOEXCEPT
85458     {
85459       return std::hash<VkImageView>{}(static_cast<VkImageView>(imageView));
85460     }
85461   };
85462 
85463   template <> struct hash<vk::IndirectCommandsLayoutNV>
85464   {
operator ()std::hash85465     std::size_t operator()(vk::IndirectCommandsLayoutNV const& indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT
85466     {
85467       return std::hash<VkIndirectCommandsLayoutNV>{}(static_cast<VkIndirectCommandsLayoutNV>(indirectCommandsLayoutNV));
85468     }
85469   };
85470 
85471   template <> struct hash<vk::Instance>
85472   {
operator ()std::hash85473     std::size_t operator()(vk::Instance const& instance) const VULKAN_HPP_NOEXCEPT
85474     {
85475       return std::hash<VkInstance>{}(static_cast<VkInstance>(instance));
85476     }
85477   };
85478 
85479   template <> struct hash<vk::PerformanceConfigurationINTEL>
85480   {
operator ()std::hash85481     std::size_t operator()(vk::PerformanceConfigurationINTEL const& performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT
85482     {
85483       return std::hash<VkPerformanceConfigurationINTEL>{}(static_cast<VkPerformanceConfigurationINTEL>(performanceConfigurationINTEL));
85484     }
85485   };
85486 
85487   template <> struct hash<vk::PhysicalDevice>
85488   {
operator ()std::hash85489     std::size_t operator()(vk::PhysicalDevice const& physicalDevice) const VULKAN_HPP_NOEXCEPT
85490     {
85491       return std::hash<VkPhysicalDevice>{}(static_cast<VkPhysicalDevice>(physicalDevice));
85492     }
85493   };
85494 
85495   template <> struct hash<vk::Pipeline>
85496   {
operator ()std::hash85497     std::size_t operator()(vk::Pipeline const& pipeline) const VULKAN_HPP_NOEXCEPT
85498     {
85499       return std::hash<VkPipeline>{}(static_cast<VkPipeline>(pipeline));
85500     }
85501   };
85502 
85503   template <> struct hash<vk::PipelineCache>
85504   {
operator ()std::hash85505     std::size_t operator()(vk::PipelineCache const& pipelineCache) const VULKAN_HPP_NOEXCEPT
85506     {
85507       return std::hash<VkPipelineCache>{}(static_cast<VkPipelineCache>(pipelineCache));
85508     }
85509   };
85510 
85511   template <> struct hash<vk::PipelineLayout>
85512   {
operator ()std::hash85513     std::size_t operator()(vk::PipelineLayout const& pipelineLayout) const VULKAN_HPP_NOEXCEPT
85514     {
85515       return std::hash<VkPipelineLayout>{}(static_cast<VkPipelineLayout>(pipelineLayout));
85516     }
85517   };
85518 
85519   template <> struct hash<vk::PrivateDataSlotEXT>
85520   {
operator ()std::hash85521     std::size_t operator()(vk::PrivateDataSlotEXT const& privateDataSlotEXT) const VULKAN_HPP_NOEXCEPT
85522     {
85523       return std::hash<VkPrivateDataSlotEXT>{}(static_cast<VkPrivateDataSlotEXT>(privateDataSlotEXT));
85524     }
85525   };
85526 
85527   template <> struct hash<vk::QueryPool>
85528   {
operator ()std::hash85529     std::size_t operator()(vk::QueryPool const& queryPool) const VULKAN_HPP_NOEXCEPT
85530     {
85531       return std::hash<VkQueryPool>{}(static_cast<VkQueryPool>(queryPool));
85532     }
85533   };
85534 
85535   template <> struct hash<vk::Queue>
85536   {
operator ()std::hash85537     std::size_t operator()(vk::Queue const& queue) const VULKAN_HPP_NOEXCEPT
85538     {
85539       return std::hash<VkQueue>{}(static_cast<VkQueue>(queue));
85540     }
85541   };
85542 
85543   template <> struct hash<vk::RenderPass>
85544   {
operator ()std::hash85545     std::size_t operator()(vk::RenderPass const& renderPass) const VULKAN_HPP_NOEXCEPT
85546     {
85547       return std::hash<VkRenderPass>{}(static_cast<VkRenderPass>(renderPass));
85548     }
85549   };
85550 
85551   template <> struct hash<vk::Sampler>
85552   {
operator ()std::hash85553     std::size_t operator()(vk::Sampler const& sampler) const VULKAN_HPP_NOEXCEPT
85554     {
85555       return std::hash<VkSampler>{}(static_cast<VkSampler>(sampler));
85556     }
85557   };
85558 
85559   template <> struct hash<vk::SamplerYcbcrConversion>
85560   {
operator ()std::hash85561     std::size_t operator()(vk::SamplerYcbcrConversion const& samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT
85562     {
85563       return std::hash<VkSamplerYcbcrConversion>{}(static_cast<VkSamplerYcbcrConversion>(samplerYcbcrConversion));
85564     }
85565   };
85566 
85567   template <> struct hash<vk::Semaphore>
85568   {
operator ()std::hash85569     std::size_t operator()(vk::Semaphore const& semaphore) const VULKAN_HPP_NOEXCEPT
85570     {
85571       return std::hash<VkSemaphore>{}(static_cast<VkSemaphore>(semaphore));
85572     }
85573   };
85574 
85575   template <> struct hash<vk::ShaderModule>
85576   {
operator ()std::hash85577     std::size_t operator()(vk::ShaderModule const& shaderModule) const VULKAN_HPP_NOEXCEPT
85578     {
85579       return std::hash<VkShaderModule>{}(static_cast<VkShaderModule>(shaderModule));
85580     }
85581   };
85582 
85583   template <> struct hash<vk::SurfaceKHR>
85584   {
operator ()std::hash85585     std::size_t operator()(vk::SurfaceKHR const& surfaceKHR) const VULKAN_HPP_NOEXCEPT
85586     {
85587       return std::hash<VkSurfaceKHR>{}(static_cast<VkSurfaceKHR>(surfaceKHR));
85588     }
85589   };
85590 
85591   template <> struct hash<vk::SwapchainKHR>
85592   {
operator ()std::hash85593     std::size_t operator()(vk::SwapchainKHR const& swapchainKHR) const VULKAN_HPP_NOEXCEPT
85594     {
85595       return std::hash<VkSwapchainKHR>{}(static_cast<VkSwapchainKHR>(swapchainKHR));
85596     }
85597   };
85598 
85599   template <> struct hash<vk::ValidationCacheEXT>
85600   {
operator ()std::hash85601     std::size_t operator()(vk::ValidationCacheEXT const& validationCacheEXT) const VULKAN_HPP_NOEXCEPT
85602     {
85603       return std::hash<VkValidationCacheEXT>{}(static_cast<VkValidationCacheEXT>(validationCacheEXT));
85604     }
85605   };
85606 }
85607 #endif
85608